MySQL 8.0 升级过程中,系统表引擎没有正确转换怎么办
·
MySQL 5.7 → 8.0 迁移时,直接恢复了包含系统表的备份,导致系统表引擎混乱,无法创建用户、无法授权、无法修改认证方式
第一步:以跳过权限模式启动 MySQL
systemctl stop mysqld mysqld_safe --skip-grant-tables --skip-networking &
第二步:登录 MySQL 并修复系统表
mysql -uroot
在 MySQL 命令行中执行:
USE mysql; ALTER TABLE db ENGINE=InnoDB; ALTER TABLE user ENGINE=InnoDB; FLUSH PRIVILEGES; EXIT;
第三步:杀死后台进程,正常重启 MySQL
pkill mysqld systemctl start mysqld
第四步:验证系统表引擎
mysql -uroot -p'你的密码' -e "USE mysql; SHOW TABLE STATUS LIKE 'db';"

如果 Engine 列显示 InnoDB,说明修复成功。
更多推荐



所有评论(0)