MacOSでMySQL8.0が起動しない時の小手先じゃない解決法

MacOSMonterey.アップデートMySQL.起動しない

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のアンインストールと不要ファイル削除、再インストールと初期設定まで行いました。

Qiita
Mac MySQL 8.0 再インストールする - Qiita Laravelの記事を書く際にお試し用の環境をローカルに作るのですが、MySQLのrootパスワードをよく忘れる問題とか再インストールしたくなるので手順をまとめました。環境macO...

②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ファイル無理やり作ればいい!」という目先だけを意識した解決策でしたが、こちらは丁寧に根本を考えるべきという主張でした。

https://hirocorpblog.com/post-487/#index_id6

MySQL関連の他記事はこちら

社会人マナブログ
MacOSMonterey.アップデートMySQL.起動しない

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ピープル大学(UoPeople)でコンピューターサイエンスを学んでいます。趣味はプログラミング。

コメント

コメントする

目次