
將 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.
因此,失敗的升級似乎並沒有完全回滾到先前的狀態——資料的某些部分認為它處於版本 80200,即使升級沒有完成。
現在我無法運行任何版本的 MySQL 來清理表。有沒有
- 我可以運行另一個不需要 mysqld 運行的實用程式?
- 手動修改 sys_config 以允許升級繼續進行的方法?也許刪除它以便 MySQL 可以重建它?