web-dev-qa-db-ja.com

MySQLソケットファイルへのカスタムパスを定義する方法

次の設定があります

[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正常に動作します。

3
Kirby

あなたのエラーメッセージはそれが間違ったソケットに接続していると言います:

エラー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
5
Károly Nagy
# 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

注意:

  1. [client]セクションを追加することを忘れないでください。そうしないと、エラーが発生します。

    エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'を介してローカルMySQLサーバーに接続できません

  2. または、次のようにmysqlコマンドにフラグを渡すことができます。

    mysql -u root -p --socket=/absolute/path/of/your/mysql.sock
    
1
Veeresh Reddy