環境
- OS:Kali Linux 2019.2
- MySQL:Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
問題
以下のように、
MySQLに接続しようとするとエラーが発生する。
# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
原因
MySQLクライアントが呼び出す
UNIXドメインソケットと、
MySQLサーバーが呼び出す
UNIXドメインソケットが異なるため。
※ UNIXドメインソケットとは、
同一ホスト内で通信を行うためのソケット。
実態はファイル。
解決方法
サーバーが呼び出す
UNIXドメインソケットのファイルパス名を、
クライアントに合わせて変更する。
変更前
/opt/lampp/etc/my.cnf(一部抜粋)
# The following options will be passed to all MySQL clients
[client]
socket = /opt/lampp/var/mysql/mysql.sock
# The MySQL server
[mysqld]
socket = /opt/lampp/var/mysql/mysql.sock
変更後
/opt/lampp/etc/my.cnf(一部抜粋)
# The following options will be passed to all MySQL clients
[client]
#socket = /opt/lampp/var/mysql/mysql.sock
socket = /var/run/mysqld/mysqld.sock
# The MySQL server
[mysqld]
#socket = /opt/lampp/var/mysql/mysql.sock
socket = /var/run/mysqld/mysqld.sock