将 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 重建它?