我将MySQL 5.7升级到MySQL 8.0后重启MySQL,但是在尝试转储表空间时出现了错误:“在指定的定义者('mysql.infoschema'@'localhost')不存在"。我不明白这个问题为什么会出现,想知道如何解决它。
我在不小心将MySQL版本从8降级到5.7时遇到了同样的错误。旧版本在第一次启动时出了问题,因此版本8显示了上述错误。 在我的情况下,我必须先进入运行MySQL的Docker容器。
docker exec -it mysql bash
我基本上按照这里的步骤进行了操作。
mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
这花了一些时间,但之后一切都恢复正常了。
在您设置新系统之后可能会发生此问题。
作为建议的解决方案,请尝试在 Windows 上执行以下操作:
1)以管理员身份打开 cmd.exe
2)运行 mysql_upgrade.exe -uyour_user_name -pyour_password
mysql_upgrade.exe
可在以下位置找到
C:\Program Files\MySQL\MySQL Server 8.0\bin
然后运行以下命令,查看infoschema用户是否已出现。
select user, host from mysql.user;
mysql_upgrade
。 - Ray Huntermysql_upgrade -u root
也适用于我。 - Sohair Ahmad