猫も杓子も記事を書く

140文字ではかけないことをかこうと思います。

Mysqlが突然起動しなくなる

備忘録代わりに。

いつも仕事で使っているMacですが、こいつが突然強制再起動を起こしだします。 厄介なのが、原因がわからんということですが、 これまでも月一くらいのスパンで度々再起動していて、 何かデータに問題があったわけではなかったので、 またかよ、まあいいやと思いつつ、普通に作業をしておりました。

ところが、今回の強制再起動後、 SQLinjectionのエラーが出て、作業しているページにアクセスできなくなってしまいました。 これは困った。

SQLinjectionだし、MySQLがおかしくなっている可能性は高いと思い、 試しにconnectしてみることに。

$ mysql -u root -p

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

当たりでした。 どうやら、mysql.sockファイルがないせいでローカルサーバーにアクセスできないらしい。

https://vps.prostsite.co.jp/wp/trouble/mysql-08

詳しいことはわかりませんが、mysql.sockファイルがDBとの通信をよしなにしてくれているんだなー、ぐらいが分かったところで、ファイルを作ってあげます。 エラーログが指定しているディレクトリに作成します。

※sockファイルが有るディレクトリ、ほんとは

/var/lib/mysql/mysql.sock

みたいですが、ぼくのケースは違いました。インスコ手順が違うのかもしれません。よくわからん。 兎にも角にも、ここはエラーログに従うしかありません。

$ sudo touch /tmp/mysql/mysql.sock
$ sudo mysql.server restart 

Starting MySQL
..... SUCCESS! 

$ mysql -uroot test

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.25 Homebrew

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

#以下略

うまくいきました。 この手の事例はたくさんあるようですので、ググれば答えが出そうですね。

参考にしたサイト

qiita.com