[转帖]InnoDB:Error:Table mysql.innodb_table_stats notfound_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2538 | 回复: 0   主题: [转帖]InnoDB:Error:Table mysql.innodb_table_stats notfound        下一篇 
sam_info
注册用户
等级:新兵
经验:66
发帖:6
精华:0
注册:2012-4-16
状态:离线
发送短消息息给sam_info 加好友    发送短消息息给sam_info 发消息
发表于: IP:您无权察看 2014-11-10 11:20:47 | [全部帖] [楼主帖] 楼主

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,去数据库目录看下,果然文件是否已经存在了:

[root@xxx mysql]# ll /home/data/mysql/data/mysql/innodb*
-rw-rw----. 1mysql mysql 12982 4月 922:24 /home/data/mysql/data/mysql/innodb_index_stats.frm
-rw-rw----. 1mysql mysql 180224 5月 6 10:38/home/data/mysql/data/mysql/innodb_index_stats.ibd
-rw-rw----. 1mysql mysql 8830 4月 922:24 /home/data/mysql/data/mysql/innodb_table_stats.frm
-rw-rw----. 1mysql mysql 98304 5月 610:38 /home/data/mysql/data/mysql/innodb_table_stats.ibd
[root@xxx mysql]#


如果是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备份操作,一切正常。

InnoDB:Error:Table
mysql
innodb_table_st


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论