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

我得到以下内容:

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时出现这些错误。 这似乎导致MySqlpipe理员变得不稳定,我得到了很多:

 "MySQL server has gone away" 

显然,MySQL架构存储由于某种原因而被破坏。 这些原因可能是:

  • 你已经破坏了数据库information_schema
  • 文件系统损坏或文件系统中的一些错误损坏了数据库。
  • 由于MySQL中存在一个错误,MySQL内部破坏了模式数据库(可能以前没有人遇到过)。

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

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

在shell中尝试下面的命令(这里的root用户是mysql root用户,而不是系统根目录)

 sudo mysql_upgrade -u root -p 

运行后确保重新启动mysql (注释中的@Mikepote)。

我的情况下,它出现在一个表上运行特定的查询。

而日志还包含:

缺less系统表mysql.proxies_priv; 请运行mysql_upgrade来创build它

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

我有这个问题,答案就在@Berend de Boer

升级后重新启动mysql。

[错误]本地表性能架构具有错误的结构

如果数据库是一个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选项是关键。

在安装MySQL时,如果先前的安assembly置为没有性能模式或性能模式可能不包含所有当前表的旧版本,则会遇到此错误。

我也在mamp上遇到这个问题。 为了解决这个问题,我已经执行了以下内容:

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

你可以阅读性能模式构buildconfiguration的更多细节。