MySql 8.0.11-从5.7更新后找不到mysql.infoschema

Raf*_*ael 8 php mysql fedora phpmyadmin

今天早上我的mySQL在我的系统上自动从5.7到8.0.11更新.

在此之后,我无法看到任何数据库或在phpMyAdmin上运行任何命令.我尝试做的每件事都会导致涉及mysql.infoschema表格的一些错误.

我得到的大多数错误都是这样的: #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仍然使用MyISAM作为MySQL模式中的MySQL权限表,但在MySQL中它们被移动到InnoDB.

我甚至尝试了8.0.11的全新安装,所以我可以导入我的数据库,但是当我尝试以root身份登录时,我得到了相同的#1449错误.

PS.我正在使用Fedora 28.

Tim*_*tje 19

您应该在mysql_upgrade每次升级MySQL时执行.

这是因为在某些升级或降级后,表格会发生变化,您需要(重新)创建一些权限

mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
Run Code Online (Sandbox Code Playgroud)

mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL Server不兼容. mysql_upgrade还会升级系统表,以便您可以利用可能已添加的新权限或功能.