1,Mysqldump的时候报错如下:
2014-05-05?14:12:37?7f004a9a2700?InnoDB:?Error:?Table?”MySQL”.”innodb_table_stats”?not?found.
但是show tables我看这个表示存在的:

但是show create table innodb_index_stats;报错如下:
- mysql>??show?create?table?innodb_index_stats;
- ERROR?1146?(42S02):?Table‘mysql.innodb_index_stats’?doesn’t?exist
- mysql>
2,估计是表坏了,去数据库服务器上面的mysql库的目录看下这些表的数据文件:

3,看到表的数据文件以及结构文件都存在
然后去找$MYSQL_HOME/share/mysql_system_tables.sql,search到建表语句

打开mysql_system_tables.sql,找到sql,然后执行:
- mysql>?CREATETABLE?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?NOTNULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,
- ????->?????????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=utf8COLLATE=utf8_bin?STATS_PERSISTENT=0;
- ERROR?1146(42S02):?Table?‘mysql.innodb_index_stats’?doesn’t?exist
- mysql>
- mysql>
还报错Table ‘mysql.innodb_index_stats’ doesn’texist,可能是那个判断导致,去掉判断试试:
- mysql>?CREATETABLE?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?NOTNULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,
- ????->?????????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=utf8COLLATE=utf8_bin?STATS_PERSISTENT=0;
- ERROR?1146(42S02):?Table?’mysql.innodb_index_stats’?doesn’t?exist
诡异,不存在还不让create了,是否原来的数据文件存在不过坏了,所以create的时候就报了这样一个诡异的错误呢?
4,去数据库目录看下,果然文件是否已经存在了:
如果是myisam表还可以用命令修复一下,但是innnodb,就只好重启数据库试试,restart之后,进入mysql库:
- mysql>?descinnodb_index_stats;
- ERROR?1146(42S02):?Table?‘mysql.innodb_index_stats’?doesn’t?exist
还是报错,那就只有drop操作:
- mysql>?droptable?mysql.innodb_index_stats;
- ERROR?1051(42S02):?Unknown?table?‘mysql.innodb_index_stats’
- mysql>
- mysql>
5,RM操作删除掉旧的坏的数据表文件
drop还是报错,最后看来只有一招了,rm -rf掉原来已经存在坏掉的不能加载的innodb_index_stats文件,再重新create了。
- rm?-rf/home/data/mysql/data/mysql/innodb*
rm后再登陆mysql执行create操作。
- mysql>?usemysql;
- Database?changed
- mysql>
- mysql>??CREATE?TABLE?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?NOTNULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,
- ????->?????????????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_binSTATS_PERSISTENT=0;
- Query?OK,?0?rowsaffected?(0.02?sec)
创建innodb_index_stats成功了。最后执行原来的mysqldump备份操作,一切正常。
腾讯云
限时秒杀【点击购买】
搬瓦工,CN2
高速线路,1GB
带宽,电信联通优化KVM
,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ
,支持<支付宝> 【点击购买】!
Vultr$3.5
的日本
节点,512M
内存/500G
流量/1G
带宽,电信联通优化,延迟低,速度快【点击购买】!
阿里云
香港、新加坡
VPS/1核/1G/25G SSD
/1T
流量/30M
带宽/年付¥288
【点击购买】