mysql更新后找不到mysql.infoschema

ep6jt1vc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(405)

今天早上,我的mysql在我的系统上被自动更新,从5.7版升级到8.0.11版。
在此之后,我看不到我的任何数据库,也无法在phpmyadmin上运行任何命令。我尝试做的每件事都会导致一些涉及 mysql.infoschema table。
我遇到的大多数错误如下: #1449 - The user specified as a definer ('mysql.infoschema'@'localhost') does not exist 我已经搜索了错误并尝试运行命令来创建用户 GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES; 从这个答案中可以看出。但我一直有语法错误。
在搜索了涉及5.7和8.0.11版本的突破性问题之后,我在这个站点上看到系统表被移到了innodb。
mysql的第一个存储引擎是myisam,到目前为止已经在mysql中提供了。mysql 5.7在mysql模式中仍然使用myisam作为mysql特权表,但是在mysql中它们被移动到innodb。
我甚至尝试了新安装的8.0.11版本,这样我就可以导入我的数据库了,但是我在尝试以root身份登录时遇到了相同的#1449错误。
另外,我用的是软呢帽28。

dgenwo3n

dgenwo3n1#

你应该执行 mysql_upgrade 每次升级mysql时。
这是因为在某些升级或降级之后,表会发生更改,您需要(重新)创建一些特权

mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
``` `mysql_upgrade` 检查所有数据库中的所有表是否与当前版本的mysql server不兼容。 `mysql_upgrade` 同时升级系统表,以便您可以利用可能已添加的新特权或功能。

相关问题