我有一个mysql服务器运行在一个码头容器中。我试图将数据库从8.0.29升级到8.0.30。但是,在启动时,发生了以下错误:
2022-09-06T13:13:39.928986Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2022-09-06T13:13:40.701091Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-09-06T13:13:40.954725Z 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.29, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2022-09-06T13:13:40.954752Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-09-06T13:13:41.328075Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-09-06T13:13:41.328265Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-09-06T13:13:41.328299Z 0 [ERROR] [MY-010119] [Server] Aborting
然后,我尝试在8.0.29版本中重新启动,但这也不再起作用--错误消息是:
2022-09-06T13:31:18.544142Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) starting as process 1
2022-09-06T13:31:18.682671Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-09-06T13:31:24.588234Z 1 [ERROR] [MY-013171] [InnoDB] Cannot boot server version 80029 on data directory built by version 80030. Downgrade is not supported
mysqld: Can't open file: 'mysql.ibd' (errno: 0 - )
2022-09-06T13:31:25.243497Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-09-06T13:31:25.243720Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-09-06T13:31:25.243968Z 0 [ERROR] [MY-010119] [Server] Aborting
我有什么办法解决这个问题吗?
发布于 2022-09-06 14:13:17
首先备份mysql数据目录。然后删除文件ib_logfile*。启动mysql时,它将创建新的空日志文件。
此外,使用innodb_fast_shutdown = 2
运行也是个坏主意。将其更改为1。您仍然可以快速关闭,但mysql将尽可能将您的文件降到一致、可升级的状态。正如您已经发现的,在运行Docker时,这一点很重要,因为您的软件版本可以独立于您的数据。
https://serverfault.com/questions/1110089
复制相似问题