LoginSignup
5
0

More than 3 years have passed since last update.

Railsで「Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)」と言われたときの対処方法

Last updated at Posted at 2018-03-06

ローカル環境で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
で確認。

無事解決しました。インターネットってすごい

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0