web-dev-qa-db-ja.com

mysqlを起動できません:InnoDB:クラッシュ後のアップグレードはサポートされていません

私は自作インストールからMySQLを実行しようとしています、しかしmysql.server startを試みるときそれは失敗し続けます。

私の/usr/local/var/mysql/<name>.local.errはそのように読み、数秒ごとにこのエラーメッセージを送り続けます。

2018-06-20T20:38:54.6NZ mysqld_safe Logging to '/usr/local/var/mysql/<computer name>.local.err'.
2018-06-20T20:38:54.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2018-06-20T20:38:54.379228Z 0 [System] [MY-010116] [Server] /usr/local/opt/mysql/bin/mysqld (mysqld 8.0.11) starting as process 6271
2018-06-20T20:38:54.383128Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2018-06-20T20:38:54.449869Z 1 [ERROR] [MY-012526] [InnoDB] InnoDB: Upgrade after a crash is not supported. This redo log was created with MySQL 5.7.20. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2018-06-20T20:38:54.449947Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
2018-06-20T20:38:54.919197Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2018-06-20T20:38:54.919769Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-06-20T20:38:54.919814Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-06-20T20:38:54.920978Z 0 [System] [MY-010910] [Server] /usr/local/opt/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.11)  Homebrew.
2018-06-20T20:38:54.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/bae.local.pid ended
13
nipponese

ログにもまったく同じエラーがありました。日本の答えを築くためだけに。

すべてのバージョンのMySQLを削除しました(私は5.7.21、5.7.22、および8.0.11を持っていました):brew uninstall --force mysql

削除と修復を確認してくださいbrew services listそして次にbrew doctor

オリジナルのMySQLの名前を変更mv /usr/local/var/mysql /usr/local/var/old.mysql

最新のMySQLをインストールしてください(現在は8.0.11):brew install mysql

MySQLセキュアインストール/usr/local/bin/mysql_secure_installation

私は最初にこのエラーを受け取りました:Error: Access denied for user 'dbadmin'@'localhost' (using password: YES)

私はユーザーレベルの設定を使用しています。それで私は.my.cnfに改名して、再び安全なインストールを実行しました。

mv /Users/[your username]/.my.cnf /Users/[your username]/old.my.cnf/usr/local/bin/mysql_secure_installation

インストールのプロンプトで、私は以下のオプションを入力しますY, 0, Y, N, N, Y, Y

MySQL WorkbenchのアップグレードそれでもMySQL Workbench(GA 6.3.10)に接続できませんでしたが、ついにMySQLが起動したようです。次のエラープロンプトが表示されました。

"認証プラグイン 'caching_sha2_password'をロードできません:dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so、2):image not found"

これを解決するために、MySQL Workbench 8.0.11 rc(開発リリースバージョン)をダウンロードしました。 GUIを使用して、新しいパスワード規則に従う前に持っていたユーザーを追加しました。より安全なパスワードで更新し、〜/ .my.cnfの名前を変更しました。それから私のDBを復元しました。

この時点で、rootとセキュアインストール中に設定した新しいパスワードを使用してワークベンチに接続できました。

クリーンアップ(名前を変更したディレクトリを削除するとその内容):rm -r /usr/local/var/old.mysql

15
Hunter

tldr;新しいバージョンのmysqlがHomebrew経由でインストールされました。以前にインストールしたバージョンに戻します。

brew switch mysql X.X.XX` and `brew services restart mysql 

全体的には、おそらくbrew upgradeを付けてmysqlの新しいバージョンをインストールしたということです。 brew info mysqlの出力を確認してください。複数のバージョンが表示されることがあります。

私の場合は、次の両方を見ました。

/usr/local/Cellar/mysql/5.7.17
/usr/local/Cellar/mysql/8.0.11

mysql --versionをチェックしたところ、新しい8.0.11が起動していました。

Homebrewにはswitchコマンドが含まれているので、サービス間でそれを実行できます。

これを実行して、バージョンを自分のものに置き換えます。

brew switch mysql 5.7.17

Mysqlを再起動します。

brew services restart mysql

すべて正常に戻っているはずです。

11
johnsampson

この問題は、/usr/local/var/mysqlの以前のインストールであるようです。

自作によるアンインストール、/usr/local/var/mysqlの削除、brew doctorの実行、自作による再インストールの後、問題は解決しました。

3
nipponese