ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)を解決する
せっかく導入したSequel Aceを接続できないまま、terminalからもいろいろいじり倒して挫折した昨日。PCをシャットダウンして、寝た。
PCはシャットダウンしない、という人も多いけれど、大昔、今とは比べものにならないような性能の時代からPCを使ってきたので(ただのユーザーとしてです)、「PCもちゃんと寝ないと頭が働かない」的な感覚がある。なので特に理不尽な(と感じる)エラーに悩んだ日は、メールの確認さえ止めて、シャットダウンしてPCから離れる。しっかり寝て、明日は元気に働いてね〜、という気分。
MySQLも寝てしまう。
確かに再起動で直るエラーもある。が、実は今回のエラーは、再起動そのものが原因だった。きのう私は、別の理由で一度再起動したのだ。それはそれで役立ったのだけれど、そのとき、MySQLも寝てしまった、ということに気づかないまま、Sequel Aceを繋ごうとした。エラーが出て、いろんな記事を見ていじり倒して、挫折して、寝た。
寝て起きた私は、PCを起こす。いまいま興味のないアプリがいろいろ勝手に立ち上がるのを消して回る。(ちゃんと設定で消せばいいんだが、めんどうくさい) そして思ったのだ。MySQLは起きたのかな?
- % mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
今までいつもここからスタートしていた。でもそれって、導入してから一度も、PCを消していなかったときじゃないか? 確かもう一つ、コマンドがあったはずだ。
- % mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
. SUCCESS!
全く紛らわしいことに、エラー!といいつつ、Success!している。で、もう一回。
- % mysql -u root -p
Enter password:
Welcome to the MySQL monitor. (中略)
mysql>
やった。起きた! で、Sequel Aceから接続。できた!
結論、寝た子はちゃんと起こしましょう。