MySQL
mysql2

【8.0.12】mysql2が開けないエラーの解消方法

開発環境
macOS Mojave 10.14.1

$ mysql --version

$ mysql  Ver 8.0.12 for osx10.14 on x86_64 (Homebrew)

ある日突然こうしても

 $ mysql -u root

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

このようなエラーが出てきて、mysqlが使えなくなってしまった。

検索したら出てきた

$ sudo touch /tmp/mysql.sock

これをしてから

$ sudo mysql.server restart

こうしてもダメ、、、

 ERROR! MySQL server PID file could not be found!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/suzukiryounoMacBook-Pro.local.pid).

PIDファイルが無い?
早速エラーが潜んでいそうなフォルダへ移動

$ cd /usr/local/var/mysql/

$ ls

確かにPIDファイルなる物が存在しない

$ touch suzukiryounoMacBook-Pro.local.pid
# <user_name><device_name>.local.pid

これでよし

$ mysql.server restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL
.rm: /tmp/mysql.sock: Permission denied
2018-11-18T03:14:51.6NZ mysqld_safe Fatal error: Can't remove the socket file:
/tmp/mysql.sock.
Please remove the file manually and start /usr/local/Cellar/mysql/8.0.12/bin/mysqld_safe again;
mysqld daemon not started
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/suzukiryounoMacBook-Pro.local.pid).

エラーメッセージ通りに実行する
また実際にファイルに移動

$ cd /tmp
$ sudo rm -rf /mysql.sock

これで準備は整った
念の為もう一度確認

#/tmp/

$ ls
# mysql.sockが存在しない
#/usr/local/var/mysql/

$ ls
# <user_name><device_name>.local.pidが存在している

確認できたらエラーメッセージ通り実行します

 ERROR! MySQL server PID file could not be found!
Starting MySQL
.rm: /tmp/mysql.sock: Permission denied
2018-11-18T03:14:51.6NZ mysqld_safe Fatal error: Can't remove the socket file:
/tmp/mysql.sock.
Please remove the file manually and start /usr/local/Cellar/mysql/8.0.12/bin/mysqld_safe again;
mysqld daemon not started
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/suzukiryounoMacBook-Pro.local.pid).
$ /usr/local/Cellar/mysql/8.0.12/bin/mysqld_safe

処理が止まったら成功

2018-11-18T03:34:40.6NZ mysqld_safe Logging to '/usr/local/var/mysql/suzukiryounoMacBook-Pro.local.err'.
2018-11-18T03:34:40.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql

新しいタブを開いて

$ mysql.server restart

Shutting down MySQL
.. SUCCESS! 
Starting MySQL
. SUCCESS! 

いけたーーーーー!

mysql -u root

あとはログインすれば使えます

知識が乏しく理由はよく分かっていません、、、(泣)