您好,登錄后才能下訂單哦!
通過ELK監(jiān)控發(fā)現(xiàn),程序連接mysql DB 失敗,通過看程序的log和mysql的error log發(fā)現(xiàn)mysql中出現(xiàn)error
查看Mysql日志
發(fā)現(xiàn) InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal
這個原因很明顯 ,是mysql庫的innodb_table_stats表損壞了。
首先登錄mysql查看表是否存在? 結(jié)果:存在的。
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 |
mysql> show create table innodb_index_stats;
ERROR 1146 (42S02): Table'mysql.innodb_index_stats' doesn't exist
mysql>
猜測是表損壞了,所以打算重新構(gòu)建表
ls /data/mysql/data/mysql
innodb_table_stats
innodb_index_stats
slave_master_info
slave_relay_log_info
slave_worker_info
發(fā)現(xiàn)文件存在,所以直接刪除,重新創(chuàng)建。
rm -rf :
innodb_table_stats
innodb_index_stats
slave_master_info
slave_relay_log_info
slave_worker_info
創(chuàng)建前檢查mysql默認的存儲引擎,如果為MyiSAM ,則在創(chuàng)建的時候,需要指定存儲引擎為INNODB
source /usr/local/mysql/share/mysql_system_tables.sql 這個表的時候,請注意默認的存儲引擎是否為innodb.
個人操作,發(fā)現(xiàn)使用以上source并未能將以上損壞的表進行重新構(gòu)建
嘗試以下操作
1,先看這些表是否還存在,show tables ; 結(jié)果:不存在
ls ls /data/mysql/data/mysql/ 結(jié)果:不存在
2,嘗試再次drop table innodb_table_stats purge ; (徹底刪除表)
3,手動創(chuàng)建 innodb_table_stats ,結(jié)果:成功
4,循環(huán)2,3 操作步驟,重新創(chuàng)建以上損壞的表。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。