読者です 読者をやめる 読者になる 読者になる

ERROR 2002 (HY000): Can't connect to local MySQL server through socket /tmp/mysql.sockの解決

エラー内容

 #mysql server.restart
 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

エラーの原因を探す

  • ファイルを作ってみる。
 # sudo touch /tmp/mysql.sock
 # mysql start
  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

しかしファイルはある。

ファイルのいちがmysqlでどこに設定されているかみる。

 # mysql_config –-socket
  /tmp/mysql.sock

あっているようだ。

my.cnfに設定をしてみる。

 # mysql --help | grep my.cnf
 /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

ひだりから優先的に設定が適用されるので

# cat /etc/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
socket=/var/lib/mysql/mysql.sock

このあと再び起動してみる。

 # mysql.server restart
 Starting MySQL
 ERROR! The server quit without updating PID file ...

PIDファイルに関するエラー。ログファイルの内容とその所有権を確認することにする。

 # ls -la /usr/local/var/mysql
 -rw-r-----   1 myname  _mysql      5013  9  5 23:26 myname-no-MacBook-Air.local.err

自分になっている。なってないなら chownで変更すればいい。
エラーログを確認してみる。

 # tail -f /usr/local/var/mysql/myname-no-MacBook-Air.local.err
 6383 [Note] /usr/local/Cellar/mysql/5.6.26/bin/mysqld: Shutdown complete

mysqldはシャットダウンを完了している?ように見える。なんかのプロセスが生きているか念のため確認。

 #ps aux | grep mysqld
 myname         687   0.0  0.0  2432772    560 s000  R+   10:12AM   0:00.00 grep mysqld

ここで変なのがあったらそれをkillすればいい。しかし、ないようだ。