ソケット宣言は [mysqld]
の下にある必要があります あなたの my.cnf
で .そこで宣言し、まだ tmp
などの別の場所を指している場合 、次にあなたの my.cnf
編集中のファイルが mysql の起動時に読み取られないか、別の my.cnf
が存在する 編集していたものを上書きします。 2 番目の Socket
がある場合もあります。 同じ my.cnf
内の宣言 mysql によって開始時に読み取られると予想されるファイルをオーバーライドしているファイル。
mysql にログインして実行すると、その絶対パスを確認できます:
mysql> show variables like 'socket';
+-----------------------------------------+-------------------------------+
| Variable_name | Value |
+-----------------------------------------+-------------------------------+
| socket | /yourpath/mysql.sock |
+-----------------------------------------+-------------------------------+
1 rows in set (0.00 sec)
いつでもアンマウントされる外部デバイスや時々空になるフォルダを除いて、Linux にはソケットを保存するための正しい場所も間違った場所もありません。配置する場所を構成する必要があります。
MySQL コンソール クライアントの場合、さらに考慮すべきことがあります。クライアントは、[mysqld] ではなく [client] で提供されるソケット構成値を使用しているようです。私のように複数の MySQL サーバーをセットアップしている場合 (4.1、5.5、5.7)、異なるサーバーごとに [client] 部分にソケットを記述した "--defaults-extra-file" オプションを使用することをお勧めします。ソケットは、サーバーで使用される my.cnf [mysqld] 部分で定義されているものと同じである必要があります。以下に defaults-extra-file.cnf の例を示します。必要に応じてユーザー、パスワード、およびソケットを変更することを忘れないでください -アクセス権 400 のままにします (パスワードが保存されています):
[client]
user = guardian
password = I-4m.Gr00t!
host = localhost
socket = /var/run/mysqld/mysqld-5.6.sock
これは、「host」の値として「localhost」を使用している場合にのみ適用されます。複数のローカル アドレス (127.0.0.2、127.0.0.3) がある場合、構成されたソケットを使用するには、「localhost」に「host」の構成変数を残す必要があります。それ以外の場合、クライアントは TCP を使用してサーバーに接続します。
これは、MySQL 4.1.22、5.5.49、および 5.7.19 とそれぞれのクライアントを備えた Debian 9.5 サーバーでテストされました。