MYSQL 8.0 - 不支持的重做日志格式

36

我最近更新了位于xampp文件夹下的mysql,但出现了以下错误,日志文件中有所报告:

2018-04-19T12:59:19.667059Z 0 [System] [MY-010116] [Server] C:\xampp\mysql\bin\mysqld.exe (mysqld 8.0.11) 作为进程 9324 启动
2018-04-19T12:59:20.025280Z 1 [ERROR] [MY-013090] [InnoDB] InnoDB:不支持的重做日志格式(0)。 重做日志是在MySQL 5.7.9之前创建的。
2018-04-19T12:59:20.026140Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB:插件初始化因通用错误而中止。
2018-04-19T12:59:20.229069Z 1 [ERROR] [MY-011013] [Server] 无法初始化DD存储引擎。
2018-04-19T12:59:20.230803Z 0 [ERROR] [MY-010020] [Server] 数据字典初始化失败。
2018-04-19T12:59:20.231371Z 0 [ERROR] [MY-010119] [Server] 终止
2018-04-19T12:59:20.233136Z 0 [System] [MY-010910] [Server] C:\xampp\mysql\bin\mysqld.exe:关闭完成(mysqld 8.0.11)MySQL Community Server - GPL。

有人告诉我,如果更新mysql,则应注释my.ini中的弃用配置,但我不知道要注释什么,所以我将其保留原样。

是什么导致了这个问题?


为了简化崩溃恢复期间的InnoDB表空间发现,MySQL 5.7.5引入了新的重做日志记录类型。这个增强功能改变了重做日志格式。在从MySQL 5.7.5或更高版本进行原地降级之前,使用innodb_fast_shutdown设置为0或1执行干净的关闭。使用innodb_fast_shutdown=0进行缓慢关闭是原地降级的推荐步骤。 - aynber
问题一:为什么你正在使用一个不稳定且尚未准备好投入生产的MySQL版本? - Raymond Nijland
2
下一个问题是针对 Raymond:为什么 MySQL 8.0.11 不稳定?它今天已经发布为 GA 版本。 - Nico Haase
1
使用更新版本的主要原因通常是为了获得更好的性能、获取最新的东西等等。但我升级的主要原因是使用这个命令:json_objectagg,这样我就可以将行分组成一个 JSON 对象以供以后使用。说实话,我找不到比使用这个函数更好的解决方案了。如果您有其他替代方案,随时欢迎。 - Ahmed Dolabi
我也遇到了同样的问题,有人有解决方法吗? - xpagesbeast
4个回答

55
如果您已经安装了MySQL并且没有使用innodb_fast_shutdown标志执行缓慢关闭,请直接转到MySQL目录:/var/lib/mysql/,然后删除日志文件(如果需要表数据,请先备份数据库):ib_logfile0ib_logfile1。在需要时先备份它们

3
在尝试将MariaDB数据库从10.5降级到10.4时,也出现了问题。删除“ib_logfile0”的解决方案奏效了 - 然后运行“mysql_upgrade”恢复了对所有数据的访问(我要赶快补充说明,我仅在玩具数据上测试了降级)。 - mirekphd
这些文件 ib_logfile0ib_logfile1 是什么? - java dev
我在 /usr/local/var/mysql 找到了这些文件。 - dyang

8

Docker用户

我在使用Docker化的MariaDB时遇到了相同的错误。

解决方案是:

删除Docker镜像:

docker image ls
docker rmi imagename

移除卷:

docker volume ls
docker volume rm yourvolume

移除容器:

docker ps -a
docker rm yourcontainer

然后:

docker-compose up

Windows 10 用户

如果您想像之前建议的那样删除日志文件,也可以在 Windows 中执行以下步骤:

C:\ProgramData\MySQL\MySQL Server x.x\Data 文件夹中包含 ib_logfiles


1
就其价值而言,有用的部分是删除列和容器。只要图像不用于运行容器,它就没有任何作用。 - Pier A

2

Mac OS X用户

ib_logfiles文件位于此处

rm /usr/local/var/mysql/ib_logfile*

0

在我的情况下,我删除了完整的文件夹 /var/lib/mysql ,并重新启动了 mysql 服务,这样就解决了问题...

rm -rf  /var/lib/mysql

注意:如果您删除该文件夹,可能会丢失数据。

如果您删除那个文件夹,您可能会丢失数据。如果数据库安装在/var/lib/mysql下,则您将丢失数据。 - Pier A

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接