1. 程式人生 > >Mysql innodb錯誤解決 InnoDB: Error: table `mysql`.`innodb_table_stats`

Mysql innodb錯誤解決 InnoDB: Error: table `mysql`.`innodb_table_stats`

mysql innodb innodb_table_stats

通過ELK監控發現,程序連接mysql DB 失敗,通過看程序的log和mysql的error log發現mysql中出現error

查看Mysql日誌

發現 InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal

這個原因很明顯 ,是mysql庫的innodb_table_stats表損壞了。

首先登錄mysql查看表是否存在? 結果:存在的。

Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |


  1. mysql> show create table innodb_index_stats;

  2. ERROR 1146 (42S02): Table‘mysql.innodb_index_stats‘ doesn‘t exist

  3. mysql>

猜測是表損壞了,所以打算重新構建表


ls /data/mysql/data/mysql

innodb_table_stats
innodb_index_stats
slave_master_info
slave_relay_log_info
slave_worker_info

發現文件存在,所以直接刪除,重新創建。

rm -rf :

innodb_table_stats


innodb_index_stats
slave_master_info
slave_relay_log_info
slave_worker_info


創建前檢查mysql默認的存儲引擎,如果為MyiSAM ,則在創建的時候,需要指定存儲引擎為INNODB

source /usr/local/mysql/share/mysql_system_tables.sql 這個表的時候,請註意默認的存儲引擎是否為innodb.

個人操作,發現使用以上source並未能將以上損壞的表進行重新構建

嘗試以下操作

1,先看這些表是否還存在,show tables ; 結果:不存在

ls ls /data/mysql/data/mysql/ 結果:不存在

2,嘗試再次drop table innodb_table_stats purge ; (徹底刪除表)

3,手動創建 innodb_table_stats ,結果:成功

4,循環2,3 操作步驟,重新創建以上損壞的表。


本文出自 “crazy_sir” 博客,請務必保留此出處http://douya.blog.51cto.com/6173221/1949232

Mysql innodb錯誤解決 InnoDB: Error: table `mysql`.`innodb_table_stats`