かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Homebrew MySQLをアップデートしたらmysql.sockが無くなってエラーが出るようになった。

HomebrewでMySQLを5.6.26にアップデートしました。
その後でmysqlを起動しようとした所下記のようなエラーが出るようになってしまいました。

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

mysql.sockが無いのでエラーが出ているようです。
Mac内を検索・Homebrewでインストールした/usr/local/Cellar/mysql/5.6.26内を検索してもmysql.sockというファイルを見つけることができませんでした。

試しにmysql.sockを作ってみる。

mysql.sockという存在がなんなのか解っていません。
とりあえずファイル作ってみたらどうなるかな?と思いファイルを作ってみました。

$ touch '/tmp/mysql.sock'

問題なく動いてしまった...

MySQLを再度起動てみます

$ mysql.server start
Shutting down MySQL
... SUCCESS!

えっ!?? ʕ•ᴥ•ʔ 問題なく起動してしまいました...
DBのデータもログインユーザーもアップデートする前のものが引き継がれています... 空ファイルだったんだけど? ...いいの??? ʕ•ᴥ•ʔ どゆことー?

mysql.sock 何者!?

先のmysql.server startを実行すると、/tmp内に作成していたmysql.sockはFinderでは見えなくなってしまいました。
MySQLが起動中は

$ ls -al /tmp/mysql.sock
srwxrwxrwx  1 {USER}  wheel  0 10 23 13:09 /tmp/mysql.sock

と表示され、ls -nでも一覧に表示されます。でもFinderには表示されてない。。。

そしてMySQLを止めると

$ mysql.server stop
Shutting down MySQL
... SUCCESS!
$ ls -al /tmp/mysql.sock
ls: /tmp/mysql.sock: No such file or directory

存在しないファイルになっています。ln -sしても今度は一覧にも表示されません。当然Finderでは見えないままです。  

感想

問題なく動いてるからまぁいいかーと思いつつ。
このmysql.sockというファイルが居たり居なくなったり、そもそも空ファイルで大丈夫だったのか?と少し心配です。mysql.sockが何者なのか判る方が居られましたらぜひ教えて下さい!

MySQLは↓ この本を読んだくらいの知識しかないです。

基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)

基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)

こちらのフォーラムに質問しています > MySQL - Mysql.sock とは(16446)|teratail

[参考]