Mysqlに「Can’t connect to local MySQL server through socket」が出て接続できない

MySQLに接続しようとすると(ターミナルでもphpMyAdminでもMovableTypeでも何でも)、 「Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’」といったエラーが表示されて接続できない場合。

このメッセージは

「ソケットを通じてMySQLサーバーに接続することができません」の意味。socketとはプロセスやネットワーク間の通信機構のことで、MySQLサーバとクライアントをつなぐソケットが機能していない場合にこのメッセージが出る。

対処

1.ソケットがあるかチェック

接続ファイル(/etc/my.cnf)を見て、socketがあるかどうか調べてみる。
socket=/var/lib/mysql/mysql.sock
とソケットのパスが書いてあるが、そこに置かれているかどうか、エラーメッセージのパスと比較して確認。

2.MySQLを(再)起動してみる

もしもそこに何もなかったら、MySQLがそもそも一度も起動されていない可能性が高い。MySQLを起動しよう。

service mysqld start

MySQLが起動すると、自動的にsocketが作成される。何らかの事情で誤って削除してしまっていた場合も再作成される。

広告

About: dacelo


2,497 thoughts on “Mysqlに「Can’t connect to local MySQL server through socket」が出て接続できない”

  1. MySqlをstart すると
    mysql.sockを作成しようとしているのですが、禁止マークがでて
    作成されません
    しばらくしてエラーになります
    どうすればよいでしょうか。

  2. 禁止マーク、ですか?
    ちょっと状況がよく分かりません。もう少し詳細を教えてください。
    (環境、試したコマンド、エラーメッセージなど)

  3. 私のケースは、夏休みの停電のたshutdownをした後、起動した際同様のメッセージで
    mysql> も出なくなりました。
    /usr/local/mysql/data/ を# ls -l で調べたところ
    -rw-rw—-. 1 mysql mysql 126 2014-06-07 17:45 mysql-bin.000007
    -rw-rw—-. 1 mysql mysql 648767 2014-08-03 10:11 mysql-bin.000008
    -rw-rw—-. 1 root root 126 2014-08-28 14:32 mysql-bin.000009
    のようにmysql-bin.000009のユーザーがmysqlからrootとなっていました。
    このファイルを削除したところ無事復帰しました。
    # /usr/local/mysql/bin/mysqld_safe –user=mysql &
    で起動起動すべきとろをたぶん
    # /usr/local/mysql/bin/mysqld_safe –user=root &
    で起動したためと思います。その後usr=mysqlに変えても復帰はしませんでした。
    つまらないミスで大変な目に合いました。よほどmysqlの際インストールを考えましたが、せっかくのデータも消えてしまうので、将来にも備えて根よく原因を探るのが良いと思います。

Comments are closed.