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 之前
我尝试了很多技巧来修复MySQL [官方] Docker 镜像每次崩溃,在5.7版本错误是:
InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
在8.0版本中错误是:
The designated data directory /var/lib/mysql/ is unusable
Cannot create redo log files because data files are corrupt
Table ‘mysql.plugin’ doesn’t exist
bitnami/mysql
image 一切都会好起来的!