GNU/Linux >> Znalost Linux >  >> Linux

Jaké je správné umístění souboru mysql.sock na linuxu

Deklarace soketu by měla být umístěna pod [mysqld] ve vašem my.cnf . Pokud jste to tam deklarovali a stále ukazujete na jiné místo, například tmp , pak vaše my.cnf soubor, který jste upravovali, se při spuštění mysql nečte nebo existuje další my.cnf přepíše ten, který jste upravovali. Může se také stát, že existuje druhý Socket deklarace ve stejném my.cnf soubor, který má přednost před souborem, který očekáváte, že jej na začátku přečte mysql.

Jeho absolutní cestu můžete zkontrolovat přihlášením do mysql a spuštěním:

mysql> show variables like 'socket';
+-----------------------------------------+-------------------------------+
| Variable_name                           | Value                         |
+-----------------------------------------+-------------------------------+
| socket                                  | /yourpath/mysql.sock          |
+-----------------------------------------+-------------------------------+
1 rows in set (0.00 sec)

V linuxu neexistuje správné nebo špatné místo pro ukládání soketů, kromě externích zařízení, která jsou kdykoli odpojena, nebo složek, které se čas od času vyprázdní. Musíte nakonfigurovat, kam jej chcete umístit.

U klienta konzoly MySQL je třeba zvážit ještě něco:Zdá se, že klient používá konfigurační hodnotu soketu uvedenou v [client] místo [mysqld]. Pokud máte nastavení více serverů MySQL jako já (4.1, 5.5, 5.7), pravděpodobně budete chtít použít volbu "--defaults-extra-file" se socketem napsaným v části [client] pro každý jiný server. Soket musí být stejný jako ten, který je definován v části my.cnf [mysqld] použité na serveru. Zde je příklad defaults-extra-file.cnf, nezapomeňte změnit uživatele, heslo a soket podle svých potřeb - a ponechat jej na přístupových právech 400 (je tam přece uloženo heslo):

[client]
user = guardian
password = I-4m.Gr00t!
host = localhost
socket = /var/run/mysqld/mysqld-5.6.sock

To platí pouze v případě, že jako hodnotu pro "host" používáte "localhost". Pokud máte více lokálních adres (127.0.0.2, 127.0.0.3), musíte ponechat konfigurační proměnnou pro "host" na "localhost", abyste mohli použít nakonfigurovaný soket. Jinak se klient připojí k serveru pomocí TCP.

Toto bylo testováno na mém serveru Debian 9.5 s MySQL 4.1.22, 5.5.49 a 5.7.19 a jejich příslušných klientech.


Linux
  1. Linux – Jaké jsou různé způsoby nastavení oprávnění k souborům atd. na Gnu/linux?

  2. Linux – jaké souborové systémy v systému Linux ukládají dobu vytvoření?

  3. Jaké je omezení maximálního počtu otevřených souborů v systému Linux?

  1. Linux vs. Unix:Jaký je rozdíl?

  2. Hierarchie souborů Linux – jaké je nejlepší umístění pro ukládání souborů zámků?

  3. Jaký je příkaz pro kopírování, čtení a odstraňování souboru v linuxu

  1. Co je číslo inodu v Linuxu?

  2. Jaký je účel souboru .bashrc v Linuxu

  3. Jak zjistit umístění aktuálně používaného konfiguračního souboru MySQL v linuxu