エラー内容
$ mysql.server start
でmysqlサーバーを立ち上げようとした際、以下のようなエラーが発生!
Starting MySQL
.... ERROR! The server quit without updating PID file (/usr/local/var/mysql/***.local.pid).
※このエラーは、mysqlのバージョンを変更するときに発生するらしい。私は、@5.7から@8.0に変更してから開発を行っていました。
(https://qiita.com/kazu_wsx/items/bb787e9e4e919da03705)
結論:普通にmysql.server startせずにsudoをつけると成功するかも
$ sudo mysql.server start
Starting MySQL
.. SUCCESS!
エラー解決まで
試行(1)から(5)まで。他の記事を見る限り、(3),(4)で解決した人が多いらしい。
試行(1) PIDファイルを作ってみる
$ /usr/local/var/mysql/mysql > touch /usr/local/var/mysql/****.local.pid
mysql.server start
したが、同じエラーが発生^^;
試行(2) 権限を見直す
$ sudo chown -R _mysql:_mysql /usr/local/var/mysql
mysql.server start
したが、同じエラーが発生^^;
試行(3) local配下のmysqlを全て削除し、再インストールする
①まず、local配下のmysqlを全て削除する
$ rm -rf /usr/local/mysql
$ rm -rf /Library/StartupItems/MYSQL
$ rm -rf /Library/PreferencePanes/MySQL.prefPane
$ rm -rf /Library/Receipts/mysql-.pkg
$ rm -rf /usr/local/Cellar/mysql*
$ rm -rf /usr/local/bin/mysql*
$ rm -rf /usr/local/var/mysql*
$ rm -rf /usr/local/etc/my.cnf
$ rm -rf /usr/local/share/mysql*
$ rm -rf /usr/local/opt/mysql
②次にmysqlをインストールする
$ brew install mysql
③パスを通してからサーバーを立ち上げる(@バージョン指定)
$ echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.bash_profile
$ mysql.server start
これも失敗(~_~;)
参考記事
https://qiita.com/kazu_wsx/items/bb787e9e4e919da03705
試行(4) mysql関係で動いているプロセスを確認し、不要なものは落とす
まずは以下コマンドでプロセスを確認する
$ ps aux | grep mysql
#実行結果
_mysql 8638 93.6 0.3 4900924 22712 ?? R 月09PM 9:48.67 /usr/local/Cellar/mysql/8.0.31/bin/mysqld --basedir=/usr/local/Cellar/mysql/8.0.31 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/8.0.31/lib/plugin --user=mysql --log-error=***.local.err --pid-file=/usr/local/var/mysql/***.local.pid
root 8542 0.0 0.0 4288440 8 ?? S 月09PM 0:00.03 /bin/sh /usr/local/Cellar/mysql/8.0.31/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/***.local.pid
ユーザー名 47378 0.0 0.0 4277624 712 s001 R+ 3:03PM 0:00.00 grep mysql
最初の数字を指定してkillする。(参考記事によると「grep」が付いているプロセス以外を落とすみたい)
$ sudo kill -TERM 8638
$ sudo kill -TERM 8542
以下コマンドでプロセスを再確認するも、消えない(~_~;)
$ ps aux | grep mysql
#実行結果
_mysql 8638 93.6 0.3 4900924 22712 ?? R 月09PM 9:48.67 /usr/local/Cellar/mysql/8.0.31/bin/mysqld --basedir=/usr/local/Cellar/mysql/8.0.31 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/8.0.31/lib/plugin --user=mysql --log-error=***.local.err --pid-file=/usr/local/var/mysql/***.local.pid
root 8542 0.0 0.0 4288440 8 ?? S 月09PM 0:00.03 /bin/sh /usr/local/Cellar/mysql/8.0.31/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/***.local.pid
ユーザー名 47378 0.0 0.0 4277624 712 s001 R+ 3:03PM 0:00.00 grep mysql
当然、mysql.serverも起動できない、、、
参考記事
https://zenn.dev/ogakuzuko/articles/1d9d20fb5cbef8
試行(5) 普通にmysql.server startせずにsudoをつける
$ sudo mysql.server start
Starting MySQL
.. SUCCESS!
無事起動できた!
参考記事
https://qiita.com/maimaimai5420w/items/2748b70d888aa29340c6
最後に
今回のエラーは何が原因で発生しているか分かりづらいので、いろんな記事を調査する必要があると思います。
エラーが出ても挫けず、徹底的に解決方法を試しましょう!