久しぶりにTerminalでMySQLコマンド(mysql -u root)を使ってみたところ以下のエラーに遭遇しました。
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
前は使えていたのに、パスでも消えてしまったのかしらとパスを確認。
echo $PATH
珍しくパスにはmysql@5.6が入っておりきちんと通っているようです。
わからないのでググってみたところ、mysqlサーバーに接続するには、mysql.sockファイルが必要なのにないため接続できないのだとか。なぜ消えたのかは未知との遭遇状態です。
ないものは作りましょうということで以下コマンドを実行。
sudo touch /tmp/mysql.sock
パスワードを求められたので入力。
MySQLを再起動。
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/Users-iMac-539.local.pid).
この前PIDをkillしたせいかしら。とちょっと思い当たるふしもでてきました。
ググった結果の解決策はMySQL再インストール。したくないのでもう少しぐぐります。
とりあえず解決策もないので問題のファイルを見に行きます。
/usr/local/var/mysql/Users-iMac-539.local.pid
ファイル移動で、/usr/local/var/mysql/まで移動して該当のファイルを探すも見当たらない。あるのはUsers-iMac-539.local.err。テキストエディタでみるとログのよう。最後のログは1ヶ月前のものでした。
仮で作成してみたらと先人のかたが言っていたので真似てみます。
touch /usr/local/var/mysql/Users-iMac-539.local.pid
ファイルが作成されました。
再度、MySQLを再起動。
mysql.server start
割と長めに怒られる。
.rm: /tmp/mysql.sock: Permission denied
200708 22:30:21 mysqld_safe Fatal error: Can’t remove the socket file:
/tmp/mysql.sock.
Please remove the file manually and start /usr/local/Cellar/mysql@5.6/5.6.47/bin/mysqld_safe again;
mysqld daemon not started
ERROR! The server quit without updating PID file (/usr/local/var/mysql/Users-iMac-539.local.pid).
さっき作った、mysql.sockを消せと言われてしまった(権限はrootだった。コマンド:ls -la /tmp/mysql.sock)。言われた通りに消します。
sudo rm /tmp/mysql.sock
そして言われた通りにmysqld_safeを実行します。
/usr/local/Cellar/mysql@5.6/5.6.47/bin/mysqld_safe
セーフモードは起動した模様。
control + z で停止します。
あらためてログイン。
mysql -u root
無事ログインできました!