InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal
这个原因很明显 ,是mysql库的innodb_table_stats表损坏了。
再点击 mysql的innodb_index_stats 表,同样损坏。
解决方法:
损坏了,当然就是删除重补回来。
1,删除表,进入mysql库,把innodb前缀的表文件删除。
[root@AY140311174146476cc0Z mysql]# pwd /usr/local/mysql/data/mysql [root@AY140311174146476cc0Z mysql]# rm -f innodb_*
2,重新执行sql文件语句。当然语句来自安装包。
具体路径,如5.6为例:mysql-5.6.19/scripts/mysql_system_tables.sql
语句贴出来吧
CREATE TABLE IF NOT EXISTS innodb_index_stats ( database_name VARCHAR(64) NOT NULL, table_name VARCHAR(64) NOT NULL, index_name VARCHAR(64) NOT NULL, last_update TIMESTAMP NOT NULL NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, /* there are at least: stat_name='size' stat_name='n_leaf_pages' stat_name='n_diff_pfx%' */ stat_name VARCHAR(64) NOT NULL, stat_value BIGINT UNSIGNED NOT NULL, sample_size BIGINT UNSIGNED, stat_description VARCHAR(1024) NOT NULL, PRIMARY KEY (database_name, table_name, index_name, stat_name) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0 CREATE TABLE IF NOT EXISTS innodb_table_stats ( database_name VARCHAR(64) NOT NULL, table_name VARCHAR(64) NOT NULL, last_update TIMESTAMP NOT NULL NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, n_rows BIGINT UNSIGNED NOT NULL, clustered_index_size BIGINT UNSIGNED NOT NULL, sum_of_other_index_sizes BIGINT UNSIGNED NOT NULL, PRIMARY KEY (database_name, table_name) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0
然后,再查询相关的innodb表。看下是否还有错误 。
这个错误到此解决了。