次の設定があります
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql-socket/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
[mysqld_safe]
log-error=/var/log/shared/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
したがって、ソケットファイルへのカスタムパス/var/lib/mysql-socket/mysql.sock
。
MySQLサーバーは動作しますが、接続できません。
$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
必要なファイルが存在します.
$ ls /var/lib/mysql-socket/mysql.sock
/var/lib/mysql-socket/mysql.sock
ソケットファイルへのパスが/var/lib/mysql/mysql.sock
正常に動作します。
あなたのエラーメッセージはそれが間違ったソケットに接続していると言います:
エラー2002(HY000):ソケット '/var/lib/mysql/mysql.sock'(2)を介してローカルMySQLサーバーに接続できません
コマンドラインで指定することもできます。
mysql -S /var/lib/mysql-socket/mysql.sock ...
または、クライアントセクションの下のmy.cnfファイル(これは、ユーザーのホームディレクトリ~/.my.cnf
):
[client]
socket=/var/lib/mysql-socket/mysql.sock
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /mysql/data/mysql/mysql.sock
#datadir = /var/lib/mysql
datadir = /mysql/data/mysql
log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
explicit_defaults_for_timestamp = 1
[client]
port=3306
socket=/mysql/data/mysql/mysql.sock
注意:
[client]
セクションを追加することを忘れないでください。そうしないと、エラーが発生します。
エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'を介してローカルMySQLサーバーに接続できません
または、次のようにmysql
コマンドにフラグを渡すことができます。
mysql -u root -p --socket=/absolute/path/of/your/mysql.sock