首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql错误:尝试转储表空间时,指定为定义者的用户('mysql.infoschema'@'localhost')不存在

Mysql错误:尝试转储表空间时,指定为定义者的用户('mysql.infoschema'@'localhost')不存在
EN

Stack Overflow用户
提问于 2018-04-24 11:09:44
回答 3查看 32K关注 0票数 52

在我将MySQL 5.7升级到MySQL 8.0之后,我再次启动了MySQL,我得到了一个错误:在尝试转储表空间时,指定为定义者的用户('mysql.infoschema'@'localhost')不存在。我不明白为什么会出现这个问题。我想知道如何解决这个问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-01 21:20:16

当我意外地将我的MySQL版本从8降级到5.7时,我也遇到了同样的错误。在第一次启动时,旧版本破坏了一些东西,所以版本8显示了上面的错误。在我的例子中,我必须首先进入运行MySQL的docker容器

代码语言:javascript
复制
docker exec -it mysql bash

然后我基本上遵循了here的步骤

代码语言:javascript
复制
mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p

这花了几分钟时间,但随后一切都恢复了正常。

票数 171
EN

Stack Overflow用户

发布于 2018-04-29 07:20:05

它可能会在您设置新系统一段时间后发生。

作为一个建议的解决方案,只需在Windows上尝试

1)以管理员身份打开cmd.exe

2)运行mysql_upgrade.exe -uyour_user_name -pyour_password

mysql_upgrade.exe可以位于

代码语言:javascript
复制
C:\Program Files\MySQL\MySQL Server 8.0\bin

然后运行以下命令,查看是否出现了infoschema用户。

代码语言:javascript
复制
select user, host from mysql.user;
票数 10
EN

Stack Overflow用户

发布于 2018-12-12 11:39:10

在我的例子中,这样的错误是因为为了加强安全性,我将dba用户的主机从%更改为localhost。

我使用具有DDL权限的"abcdba“创建数据库模式,并使用具有CURD权限的"abc”让Web服务使用数据库。更改后,读取操作正常,但写入操作失败,并在操作中显示错误消息。

刷新权限或重新启动服务器都不能解决问题。然后,我将dba用户的主机更改回%。然后,事情又变得正常了。

显然,mysql不喜欢dba用户主机的更改,如果更改了dba用户的主机,则由该dba用户创建的现有数据库将出现问题。

实际上,更改dba用户的主机实际上是删除用户abcdba@%并创建一个新用户abcdba@localhost。错误消息来了,因为abcdba@%和abcdba@localhost是两个完全限定的用户名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49992868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档