開発用の Mac にて、brew upgrade したらローカルの MySQL が起動しなくなったので共有。
-
brew upgrade実行 -
mysql のバージョンが 5.7 から 8.0 に上がる。
-
mysql.server startでThe server quit without updating PID fileエラーになる。yamadar-mac:~ yamadar$ mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/var/mysql/yamadar-mac.pid). -
cat /usr/local/var/mysql/yamadar-mac.errでエラーログを確認[ERROR] [MY-012526] [InnoDB] InnoDB: Upgrade after a crash is not supported. This redo log was created with MySQL 5.7.17. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error. [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine. [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. [ERROR] [MY-010119] [Server] Abortingクラッシュ後のアップグレードはサポートしてないとの事。つまり前回 MySQL はクラッシュして止まっていた模様。
brew upgrade前のバージョンのMySQLで、クラッシュせずに停止させれば良さそう。 -
前のバージョンで起動してから停止。
# クラッシュして停止したバージョンのMySQLをインストール brew install mysql@5.7 # インストールしたバージョンのMySQLで起動と停止 /usr/local/opt/mysql@5.7/bin/mysql.server start /usr/local/opt/mysql@5.7/bin/mysql.server stopこれで「クラッシュせずに停止」した事になる。
-
mysql.server startで起動するようになった。yamadar-mac:~ yamadar$ mysql.server start Starting MySQL ...... SUCCESS!
エラー後に MySQL 8.0 で起動するまでの手順は以上。
おまけ : MySQL8.0 から MySQL5.7 へのダウングレード手順
自分の環境では一度 MySQL8.0 で起動/停止した後は、そのままでは MySQL 5.7 では起動できなくなった。もしダウングレードしたい場合は、MySQL8.0で起動して mysqldump する必要がありそう。
MySQL8.0 から MySQL5.7 にダウングレードした手順
-
MySQL8.0 で
mysql.server start -
ダンプファイル作成 (自分は Sequel Pro を使った)
-
MySQL8.0 停止とアンインストール
mysql.server stop # アンインストール前のデータをバックアップ(念の為) mv /usr/local/var/mysql/ /usr/local/var/mysql_bk20180615 brew uninstall mysql -
MySQL5.7 インストールと起動
brew install mysql@5.7 /usr/local/opt/mysql@5.7/bin/mysql.server start -
データベース作成してダンプファイルを戻す
-
/usr/local/opt/mysql@5.7/bin/にパスを通す -
mysql.server stop/mysql.server startなどで動作確認
これで MySQL 5.7 に戻った。
以上。