macOSをアップデートしたら、mysqlが起動しなくなりました。
「またか〜」と思って色々対処法を試しましたが、全然復活しない!!
ネットで調べても特にこれといった解決策は見つかりませんでした。
久々に2週間ほど解決までかかったので、今後同じことで時間を取られないよう、メモします。
MacOSのバージョン
アップデート後がMonterey 12.3.1になります。
mySQL8.0を起動すると、エラーです。
~ % sudo mysql.server start
Password:
Starting MySQL
. ERROR! The server quit without updating PID file (/users-MacBook-Pro.local.pid).
~ %
PIDファイルについて言及されているので見てみると、PIDファイルがいませんでした。まぁよくありますよね。
ネットでよくみる解決法
手作業でPIDを作成する
これで解決できる、という記事も見ますがダメでした。理由を考えれば明白です。PIDファイルはその名の通りプロセスIDのファイル。MySQLを起動するときに同時に書き込まれるものなので、起動できていないのに無理やりこのファイルを用意してもだめです。
私の環境では、PIDファイル作ったのに一瞬後には消えている…!という状態になりました。MySQLのプロセスが動いていないので消えて当然です。
HomeBrewでMySQLをインストールし直す
この解決法の場合、一度きれいにMySQL関連のファイルを消さなければならないので、該当フォルダをしっかり確認して削除していくフローが大変でした。まあ、やったけど解決できませんでした。
解決した方法
①HomeBrewをアップデート→MySQLを再インストール
こちらの記事のMySQLアンインストール方法に従って、MySQLのアンインストールと不要ファイル削除、再インストールと初期設定まで行いました。
②brew linkコマンドを打つ
リンクを貼り直してみました。
% brew link --force mysql
③MySQLをリスタートしてみる
私の環境ではエラーになりました。ここでもう起動できたら素敵です。
% brew services restart mysql
Stopping `mysql`... (might take a while)
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
% sudo mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/Users-MacBook-Pro.local.pid).
% mysql.server status
ERROR! MySQL is not running
④MySQLの存在するフォルダの権限を変更してstart
% which mysqlでMySQLの存在場所を確認し、移動して
% sudo chmod -R 777 /usr/local/var/mysql/
その後、あらためてservice start
% sudo mysql.server start
Starting MySQL
SUCCESS!
成功しました!!!
% sudo mysql.server status
SUCCESS! MySQL running (PID)
ではログインしてみます。
% mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
いつも通りログインしてみようと思ったら、パスワードが違うと拒否されてしまいました。そうだ、MySQLを再インストールしているので設定とかデータが全部無くなっているんですね…!
パスワードなしでログインしましょう。
% mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.29 Homebrew
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
入れました!
データベースを見てみましょう。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.02 sec)
mysql>
初期状態ですね…何にしろログインできるようになってよかった!
2022年12月、新しいMacBook Proでまたログインできなかったので同じ方法で上から試したところ、ログイン成功時に前のデータが残ってて歓喜しました!
不要なファイルを一度全部落としたつもりですが、どこかに残っていたんでしょうね…
ネットで探すと「PIDを自分で作ればいい!」「MySQLを再インストールすればいい!」という記事が多いですが、1つずつ、自分の手元ではどうして起動しないのか?を考えながら解決の糸口を探すことが大切だと思いました。
参考
こちらのサイトを参考にしました。多くのサイトが「PIDファイル無理やり作ればいい!」という目先だけを意識した解決策でしたが、こちらは丁寧に根本を考えるべきという主張でした。
MySQL関連の他記事はこちら
コメント