🦧
MySQLが起動しない(Can't connect to local MySQL server ~~)
環境
- MySQL 8.0.22
結論
- mysql.sockファイルを作成する(この段階で動くことが大半)
sudo touch /tmp/mysql.sock
- PIDファイルがない場合は以下のコマンドで.pidファイルを作成する
sudo touch /usr/local/var/mysql/*****.local.pid
-
*****
のところは自分のパソコンのホスト名が入る - ホスト名は
uname -n
コマンドで確認することが出来る
- MySQLサーバーを再起動する
sudo mysql.server restart
エラーと解決方法
mysql.sockがない
MySQLに接続しようとしたら以下のようなエラーメッセージが…。
mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
MySQLはmysql.sock
というファイルを通してローカルのMySQLサーバーに接続しているらしいのですが、そのmysql.sockファイルがないと言われています。
そして厄介なことに、このファイルがなんらかの原因で消えることがあるらしいです(原因不明。いつ起きるのかも不明)。なので、この現象が起きる度に以下の方法を通してmysql.sock
ファイルを作成しなければなりません…メンドクサイ。
mysql.sockファイルを作成する
先程も述べた通り、MySQLはmysql.sock
というファイルを通してローカルのMySQLサーバーに接続しているらしいのですが、そのmysql.sock
ファイルがないと言われているので、以下のコマンドを通してmysql.sock
ファイルを作成します。
sudo touch /tmp/mysql.sock
MySQLを再起動して確認する
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/*****.local.pid).
再起動したらまた別のエラーが発生しました。PIDファイルというものに関するエラーのようです。
調べてみるとPIDファイルというものが存在しないようだったので、コチラの記事を参考に以下のコマンドを実行してPIDファイルの作成を試みました。
touch /usr/local/var/mysql/*****.local.pid
# うまく行かなければ以下のコマンド
sudo touch /usr/local/var/mysql/*****.local.pid
-
*****
のところは自分のパソコンのホスト名が入ります。 - ホスト名は
uname -n
コマンドで確認することが出来ます。
MySQLサーバーを再度起動する
sudo mysql.server restart
Shutting down MySQL
... SUCCESS!
Starting MySQL
.. SUCCESS!
起動した!
おわりに
MySQLには定期的に悩まされているので困りものですね。
おまけ(個人的メモ)
MySQLの起動:mysql.server start
MySQLへの接続:mysql -u root -p
Discussion