開発用の 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 に戻った。
以上。