MySQLに繋がらない(解決)!Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

久しぶりに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

無事ログインできました!

SQL

Posted by Nakamoto