アップグレード後にMySQLを起動できない

アップグレード後にMySQLを起動できない

OK、これは私を狂わせる。Ubuntu 20.04.5 LTS (WSL 上)

クラッシュし、その後 MySQL をアップグレードしたため、起動しなくなったと想定しています。

2022-08-31T16:37:29.463168Z 1 [ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 8.0.28, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2022-08-31T16:37:29.463211Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-08-31T16:37:29.842520Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-08-31T16:37:29.842925Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-08-31T16:37:29.842966Z 0 [ERROR] [MY-010119] [Server] Aborting

REDO ログ ib_logfile0 と ib_logfile1 を削除しようとすると、次のようになります:

2022-09-03T16:56:05.188621Z 1 [ERROR] [MY-013862] [InnoDB] Neither found #innodb_redo subdirectory, nor ib_logfile* files in ./
2022-09-03T16:56:05.188663Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-09-03T16:56:05.672331Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-09-03T16:56:05.672561Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-09-03T16:56:05.672585Z 0 [ERROR] [MY-010119] [Server] Aborting

また、ibdata1を削除してみましたが、

2022-09-03T17:20:34.205872Z 1 [ERROR] [MY-012592] [InnoDB] Operating system error number 2 in a file operation.
2022-09-03T17:20:34.205907Z 1 [ERROR] [MY-012593] [InnoDB] The error means the system cannot find the path specified.
2022-09-03T17:20:34.205914Z 1 [ERROR] [MY-012594] [InnoDB] If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them.
2022-09-03T17:20:34.205929Z 1 [ERROR] [MY-012646] [InnoDB] File ./ibdata1: 'open' returned OS error 71. Cannot continue operation
2022-09-03T17:20:34.205977Z 1 [ERROR] [MY-012981] [InnoDB] Cannot continue operation.

8.0.28 にダウングレードすることはできると思いますが、回復する方法はあるのでしょうか?

さまざまな innodb_force_recovery 設定を試しましたが、どれも役に立ちませんでした。

これを修正するにはどうすればいいでしょうか?

ありがとう

答え1

mysqlをバージョン8.0.30にアップデートしたときに同様の問題が発生しましたが、#innodb_redoフォルダを作成することで解決しました。

cd /var/lib/mysql

mkdir #innodb_redo

chown mysql:mysql #innodb_redo

systemctl start mysql

答え2

しかし、「#」が不正な文字である場合、どうやって #innodb_redo を作成したのでしょうか。「オペランドがありません」というメッセージが表示され、Fedora 39 では作成できません。 – user3158591

vuser@fedora39-ssd-2TB:~$ cd /var/lib/mysql

vuser@fedora39-ssd-2TB:/var/lib/mysql$ sudo mkdir '#innodb_redo'

vuser@fedora39-ssd-2TB:/var/lib/mysql$ sudo chown mysql:mysql' #innodb_redo'

vuser@fedora39-ssd-2TB:/var/lib/mysql$ sudo service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service

関連情報