MySQL 5.6 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.

该错误是MYSQL 5.6版本下的一个BUG。

虽然不会影响数据库的正常使用,但是它会不断生成错误日志,如果网站访问量比较大,可能短时间内就占满硬盘,导致各项服务出错。

产生该问题的原因是,在mysql 5.6版本下,新增了以下五个表。

innodb_index_stats,
innodb_tables_stats,
slave_master_info,
slave_relay_log_info,
slave_worker_info

这五个表的存储类型是innodb,而默认情况下数据库打开这五张表的方式是MyISAM。

解决方法:

mysql  -uroot  -p密码

登录到MYSQL后,先drop掉这五张表。

use mysql;
drop table if exists innodb_index_stats; 
drop table if exists innodb_table_stats; 
drop table if exists slave_master_info; 
drop table if exists slave_relay_log_info; 
drop table if exists slave_worker_info;
exit

《MySQL 5.6 InnoDB: Error: Table

 

然后停止mysql服务,再删除掉这五张表的.frm及.ibd文件(以下涉及的路径会因为MYSQL安装目录不同而不同),删除后再重新启动MYSQL。

本人使用的是AMH环境,因此执行以下命令。

amh  mysql  stop
cd /usr/local/mysql/data/mysql
rm  -f  innodb_index_stats*  
rm  -f  innodb_table_stats*  
rm  -f  slave_master_info*  
rm  -f  slave_relay_log_info*
rm  -f  slave_worker_info*
amh  mysql  start

 

然后从MYSQL官方下载该BUG的修复文件。http://bugs.mysql.com/file.php?id=19725

会得到一个叫 five-tables.sql的文件,登录phpmyadmin,将下载到的该修复文件,导入到”mysql”这个数据库中。

《MySQL 5.6 InnoDB: Error: Table

 

《MySQL 5.6 InnoDB: Error: Table

 

《MySQL 5.6 InnoDB: Error: Table

 

导入成功后,最后再次重启MYSQL或主机即可解决该问题。

amh mysql restart
点赞

发表评论