在 Fedora 28 决定将 mysql-community 软件包升级到 8.0(最新)之后,我意识到我的应用程序失败了,不得不降级到 mysql 5.27.2
当然,我的数据库文件(.idb)是相同的(由 mysql 8.0 更改)。启动mysql 5.27服务时,失败。我已阅读日志文件 /var/log/mysqld.log 并发现:
InnoDB:数据字典中的表标志为 0,但文件 ./ibdata1 中的标志为 0x4000!
删除所有数据库文件解决了这个问题:
sudo rm -rf /var/lib/mysql/*
请注意,这样做会丢失服务器中的所有数据库!!!就我而言,我有一个转储,我可以恢复。
确保您专门使用 MySQL 8.0 版客户端以避免此错误
RCA 1.您尝试使用 mysqld_safe(ver5) 而不是 8.0 版本启动更新版本的 mysql 服务器
解决方案
export MYSQL_8_HOME=/path/to/mysql-8.0.17-macos10.14-x86_64 #e.g /usr/local/mysql-8.0.17-macos10.14-x86_64
cd $MYSQL_8_HOME # where is the dorectory mysql v8.0 was installed.
bin/mysqld_safe --user=mysql --datadir=/path/to/data/mysql
只是为了增加措施,您可能会考虑更新您的 PATH 变量以使用较新版本的 MySQL 程序作为前缀,如下所示
export PATH=$MYSQL_HOME/bin:$PATH
在启动 mysqld_safe 之前