本地表'performance_schema'。'???'有错误的结构

时间:2011-06-09 04:29:58

标签: mysql

我得到以下内容:

Native table 'performance_schema'.'file_instances' has the wrong structure
Native table 'performance_schema'.'cond_instances' has the wrong structure
Native table 'performance_schema'.'rwlock_instances' has the wrong structure
Native table 'performance_schema'.'mutex_instances' has the wrong structure
...

就这样吧 重新启动MySql时出现这些错误。它似乎导致MySql管理员变得不稳定,我得到了很多:

"MySQL server has gone away"

8 个答案:

答案 0 :(得分:218)

在shell中尝试以下命令(root用户在这里是mysql root用户,而不是系统root用户)

sudo mysql_upgrade -u root -p

运行此项后,请务必重新启动mysql (评论中的@Mikepote全部归功于此。)

答案 1 :(得分:22)

我的情况是在桌面上运行特定查询时出现。

并且日志中还包含:

  

缺少系统表mysql.proxies_priv;请运行mysql_upgrade   创造它

我已经运行 mysql_upgrade ,之后问题就消失了。

答案 2 :(得分:14)

我遇到了这个问题,答案在于@Berend de Boer

升级后重启mysql。

[ERROR]Native table performance schema has the wrong structure

答案 3 :(得分:4)

在先前安装的MySQL上安装MySQL时遇到此错误,该安装是在没有性能架构的情况下配置的,或者是可能没有所有当前表的较旧版本的Performance架构。

我在上也遇到过这个问题。要解决它,我执行了以下操作:

cd /Applications/MAMP/bin/
sudo ./upgradeMysql.sh 

请记住重启mysql服务器。

您可以阅读Performance Schema Build Configuration了解详情。

答案 4 :(得分:2)

如果数据库是Akonadi(KDE)数据库,上面的内容是不够的。 你需要镜像给你的mysqld的选项,用

检查
ps aux | grep mysql

将选项复制到mysql_upgrade命令(我不需要'-u root -p'但你可能会这样做)

mysql_upgrade --defaults-file=/home/USER/.local/share/akonadi/mysql.conf --datadir=/home/USER/.local/share/akonadi/db_data/ --socket=/tmp/akonadi-USER.x0Bvxr/mysql.socket

我真的认为--socket选项是关键。

答案 5 :(得分:0)

尝试mysql_upgrade,然后重新启动mysql及其后退

答案 6 :(得分:0)

看来这是在您完成升级后发生的。只需重新启动mysql:

就像在CMD中运行以下命令

sudo mysql_upgrade -u root -p

service mysql restart

该错误现在应该已经消失了。

答案 7 :(得分:-7)

显然,由于某种原因,MySQL模式存储被破坏了。这些原因可能是:

  • 您已破坏数据库information_schema
  • 文件系统损坏或文件系统中的某些错误损坏了数据库。
  • 由于MySQL中的错误(可能之前没有人遇到过),MySQL内部构件打破了架构数据库。

如果您没有备份,但仍然可以访问数据,请先备份数据,然后执行以下操作:

如果你有备份,那么重新安装MySQL(在此之前完全清除mysql的所有数据),然后导入你的数据。