Home » Mysql » Native table 'performance_schema'.'???' has the wrong structure

Native table 'performance_schema'.'???' has the wrong structure

Posted by: admin November 1, 2017 Leave a comment


I am getting the following:

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

And on it goes
These errors come up when I restart MySql. It seems to cause MySql Administrator to become unstable, I get a lot of:

"MySQL server has gone away"

Apparently MySQL schema storage is broken due to a reason. These reasons may be:

  • You have broken the database information_schema
  • File system corrupted or some bugs in the file system damaged the database.
  • MySQL internals broke the schema database due to a bug in MySQL (maybe nobody encountered it before).

If you don’t have backups however you are still able to access your data, first backup your data then do the following:

If you have backups, then reinstall MySQL (before that completely clear all data of mysql) and then import your data.


Try following command in shell (the root user here is the mysql root user, not the system root)

sudo mysql_upgrade -u root -p

Make sure to restart mysql after running this (All credit to @Mikepote in the comments.)


Im my case it appeared when specific query was run on a table.

And log also contained:

Missing system table mysql.proxies_priv; please run mysql_upgrade to
create it

I’ve run mysql_upgrade and after that problem has gone.


I had this problem, the answer was here by @Berend de Boer

Restart mysql after the upgrade.

[ERROR]Native table performance schema has the wrong structure


If the database is a Akonadi (KDE) database the above won’t be enough.
You need to mirror the options given to your mysqld, check with

ps aux | grep mysql

Copy the options to the mysql_upgrade commands (I did not need ‘-u root -p’ but you might)

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

I really think the –socket option is the key.


This error is encountered when you installed MySQL over a previous installation that was configured without the Performance Schema or an older version of Performance schema that may not have all the current tables.

I also encountered this issue on . To resolve it, I have executed the following:

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

You can read the Performance Schema Build Configuration more details.