2013/07/05

mysql 「Can't connect to local MySQL server through socket」

「ソケット'/tmp/mysql.sock'を通じてローカルのMySQLサーバーに接続することが出来ない」
ソケットとはプロセスやネットワーク間の通信機構のことで、
MySQLではこのソケットを通じてサーバーとクライアントとが接続される。
UNIXドメインソケット(ファイルシステムソケット)と言って、UNIX系OS特有のソケットで、
ローカルシステム内での通信を行う場合に用いられる。
このソケットの実態はサーバー・クライアント間の通信は、
このファイルの入出力を通じて行われる。

●MySQLサーバーが起動していない
  「ps ax | grep mysqld」などのコマンドで確認して下さい。
●MySQLサーバーで使っているUNIXソケットとクライアントソフトで使っているUNIXソケットのパスが違う
 [mysqld]
 socket=/var/lib/mysql/mysql.sock
 [client]
 socket=/tmp/mysql.sock
クライアント側で
ポート番号を指定する個所でソケットファイルへのパスを指定することが出来る
●ソケットファイルが削除されている
MySQLサーバーを一旦シャットダウンして再起動をかけるとソケットファイルが復元される