MySql更新后找不到mysql.infoschema

时间:2018-07-03 12:47:24

标签: php mysql phpmyadmin fedora

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

此后,我看不到任何数据库或在phpMyAdmin上运行任何命令。我尝试执行的所有操作都会导致涉及let alamofireSource = urlStrings.compactMap { $0.map(AlamofireSource.init) } // or, use a named closure argument let alamofireSource = urlStrings.compactMap { str in str.map(AlamofireSource.init) } 表的某些错误。

我得到的大多数错误是:compactMap(_:)

我已经搜索了错误,并尝试运行命令来创建用户let alamofireSource = urlStrings.flatMap { $0.map(AlamofireSource.init) } // or, use a named closure argument let alamofireSource = urlStrings.flatMap { str in str.map(AlamofireSource.init) } ,如this答案所示。但是我不断收到语法错误。

在搜索涉及版本5.7和8.0.11的重大问题之后,我在此site中看到系统表已移至InnoDB。

  

第一个用于MySQL的存储引擎-MyISAM,到目前为止在MySQL中可用。 MySQL 5.7仍将MyISAM用于MySQL模式中的MySQL特权表,但是在MySQL中,它们已移至InnoDB。

我什至尝试全新安装8.0.11版,因此我可以导入数据库,但是尝试以root用户身份登录时会遇到相同的#1449错误。

Ps。我正在使用Fedora 28。

1 个答案:

答案 0 :(得分:19)

  

You should execute mysql_upgrade each time you upgrade MySQL.

这是因为在某些升级或降级之后,表被更改了,您需要(重新)创建一些特权

mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
  

mysql_upgrade检查所有数据库中的所有表是否存在   与当前版本的MySQL Server不兼容。   mysql_upgrade还会升级系统表,以便您可以   可能已经获得的新特权或功能的优势   添加。