備忘録代わりに。
いつも仕事で使っている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. #以下略
うまくいきました。 この手の事例はたくさんあるようですので、ググれば答えが出そうですね。