ローカル環境でrailsを使って開発していたら突如ブラウザにCan't connect to local MySQL server through socket '/tmp/mysql.sock' (38)の文字が現れすこし詰まったのでメモ代わりに。
今回もインターネットにお世話になりまくりましたありがとうございました。
結論
sudo rm -rf /tmp/mysql.sock.lock
したら直りました。
試したこと
まずはエラー文で検索。
この記事を参考にしよう..と思ったところ、
一つ目のここ($ sudo mysql.server start
)で
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/macname.local.pid).
と怒られた。
新しいエラー文を授かったので検索。
この記事を参考に、/usr/local/var/mysql/を見に行ってみると確かにそんなものはなかった。
$ ls -la /usr/local/var/mysql/macname.local.pid
$ ls: /usr/local/var/mysql/macname.local.pid: No such file or directory
ので、作成して再度ls -laで作成されたことを確認。
その後記事の通り権限の付与などをした後に実行してもまたもや失敗したのでインターネットにすがっているとこんな質問を発見。
根本的な解決には至らなかったが、やり取りの中で直接エラーログを見ていくのが早そうだな〜とヒントをもらう。
で、
$ sudo tail -n 100 /usr/local/var/mysql/macname.local.err
してあげると
[ERROR] Could not open unix socket lock file /tmp/mysql.sock.lock.
の一文が。悪さをしていた原因がだいぶ絞られてきた。
またもやエラー文で調べるとこんな記事が。
なるほど。消せばいいらしい。
$ sudo rm -rf /tmp/mysql.sock.lock
からの
$ sudo mysql.server start
Starting MySQL
. SUCCESS!
からの
rails s
で確認。
無事解決しました。インターネットってすごい