Help us understand the problem. What is going on with this article?

`brew upgrade` で MySQL バージョンアップ後に起動しなくなった場合の対応

More than 1 year has passed since last update.

開発用の Mac にて、brew upgrade したらローカルの MySQL が起動しなくなったので共有。

  1. brew upgrade 実行
  2. mysql のバージョンが 5.7 から 8.0 に上がる。
  3. mysql.server startThe 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).
    
  4. 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で、クラッシュせずに停止させれば良さそう。

  5. 前のバージョンで起動してから停止。

    # クラッシュして停止したバージョンの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
    

    これで「クラッシュせずに停止」した事になる。

  6. mysql.server start で起動するようになった。

    yamadar-mac:~ yamadar$ mysql.server start
    Starting MySQL
    ...... SUCCESS!
    

MySQL8.0 から MySQL5.7 へのダウングレード手順

自分の環境では一度 MySQL8.0 で起動/停止した後は、そのままでは MySQL 5.7 では起動できなくなった。もしダウングレードしたい場合は、MySQL8.0で起動して mysqldump する必要がありそう。

MySQL8.0 から MySQL5.7 にダウングレードした手順

  1. MySQL8.0 で mysql.server start
  2. ダンプファイル作成 (自分は Sequel Pro を使った)
  3. MySQL8.0 停止とアンインストール

    mysql.server stop
    # アンインストール前のデータをバックアップ(念の為)
    mv /usr/local/var/mysql/ /usr/local/var/mysql_bk20180615
    brew uninstall mysql
    
  4. MySQL5.7 インストールと起動

    brew install mysql@5.7
    /usr/local/opt/mysql@5.7/bin/mysql.server start
    
  5. データベース作成してダンプファイルを戻す

  6. /usr/local/opt/mysql@5.7/bin/ にパスを通す

  7. mysql.server stop / mysql.server start などで動作確認

これで MySQL 5.7 に戻った。

以上。

yamadar
インフラ〜フロントエンド全般をやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした