
MySQL をバージョン 8.2 にアップグレードすると、次のエラーが発生して失敗します。
2024-01-16T22:04:31.970007Z 4 [System] [MY-013381] [Server] Server upgrade from '80100' to '80200' started.
2024-01-16T22:05:05.196376Z 4 [Warning] [MY-011836] [InnoDB] sdi_delete failed: Record Doesn't exist: tablespace_id: 1 Key: 1 4247748
2024-01-16T22:05:05.349958Z 4 [ERROR] [MY-013178] [Server] Execution of server-side SQL statement '-- Copyright (c) 2018, 2023, [blah blah blah] -- Alters the sys_config table for upgrades -- ALTER TABLE sys_config CHARACTER SET utf8mb4; ' failed with error code = 3958, error message = 'Failed to delete sdi for sys.sys_config in sys/sys_config due to missing record.'.
2024-01-16T22:05:05.352770Z 0 [ERROR] [MY-013380] [Server] Failed to upgrade server.
2024-01-16T22:05:05.352787Z 0 [ERROR] [MY-010119] [Server] Aborting
mysqld_safe
連続ループで試行を続けます。
このような質問は数多く見てきました。また、MySQL ドキュメントのトラブルシューティング ガイドにも、この問題を解決するには、以前のバージョンの MySQL に戻って整理する必要があると書かれています。しかし、古いバージョンを実行しようとすると、次のエラーが表示されます。
2024-01-16T22:11:18.042211Z 1 [ERROR] [MY-014061] [InnoDB] Invalid MySQL server downgrade: Cannot downgrade from 80200 to 80035. Downgrade is only permitted between patch releases.
したがって、失敗したアップグレードは完全には以前の状態にロールバックされなかったようです。つまり、アップグレードが完了しなかったにもかかわらず、DAT の一部はバージョン 80200 であると認識しているのです。
今では、テーブルをクリーンアップするためにMySQLのどのバージョンも実行できません。
- mysqld を実行する必要なしに実行できる別のユーティリティはありますか?
- アップグレードを続行できるように sys_config を手動で変更する方法はありますか? MySQL が再構築できるように削除するのでしょうか?