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


16

MySQLをHomebrewインストールから実行しようとしていますが、を試行すると失敗し続け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

回答:


17

ログにまったく同じエラーがありました。ちょうどニッポンセの答えを構築するために。

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):画像が見つかりません」

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

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

クリーンアップ(名前を変更したディレクトリとその内容を削除):

rm -r /usr/local/var/old.mysql


1
これは明らかに、昨日の元のポスターですでに自己回答されています。
JakeGould

4
おそらくそれはすでに自己回答でしたが、必要な正確な手順を探している私たちにとって、それほど重要な詳細はありませんでした。
Sturm

/usr/local/var/mysql最初に単に削除するのではなく、名前を変更する目的は何ですか?old.mysqlクリーンアップ中以外は使用されません。データベースを保持しながらMySQLを再インストールすると役立つので、私は尋ねます。
user2763030 2018

私がそれをした理由は、後でデータが必要になった場合に備えてです。私のローカルデータベースはすべて本番環境のクローンだったので、何もバックアップせず、アップグレードプロセスの後ですべて同期しました。mysql 8ではパスワードの暗号化ルールが更新されていますが、以前のバージョンのデータベースを使用できると思います。.my.cnfに行を追加して、sha2の代わりに古い認証方法を使用できることを知っています。申し訳ありませんが、その点についてはあまり知識がありません。これがお役に立てば幸いです。
ハンター

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)実行中に取得した場合は/usr/local/bin/mysql_secure_installation、私が行ったようにMySqlサーバーを起動するだけでよい場合があります。「mysql.server start」を実行すると、これを行うことができます。
リッチートーマス

12

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

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

完全な話は、おそらくでmysqlの新しいバージョンをインストールしたということですbrew upgrade。の出力を確認します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

すべてが正常に機能するはずです。


1
これは、最終目的で、すでに自己回答および承認された回答とどのように異なりますか?
JakeGould 2018

4
@JakeGould Answer 167207 は、すべてのデータベースコンテンツを削除することを提案しています。私の答えは、brew switchどちらを使わないかを提案しています。
ジョンサンプソン2018

けっこうだ。いいアドバイス。+1
JakeGould 2018

1
いい答えです。私のために働きました
Kuppuraj 2018年

1
MySQLのすべてのバージョンをアンインストールする前に、これを見つけられなかったのは残念です。FML
andrewtweber

3

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

Homebrewを使用してアンインストールし、を削除/usr/local/var/mysqlして実行しbrew doctor、Homebrewを介して再インストールした後、問題は解消しました。


削除/usr/local/var/mysqlすると、すべてのデータベースコンテンツが削除されますか?
Nicodemuz 2018

@Nicodemuzうん。
ニッポン

6
あなたはおそらくそれを警告として強調するべきです!
Nicodemuz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.