问题描述
本次记录一次MySQL异常导致的报错,留存以备忘,报错信息如下:
InnoDB: Error: table
mysql
.innodb_table_stats
does not exist in the InnoDB internal
原因分析
想当然的就认为是mysql库的innodb_table_stats表损坏了,结果登录mysql查询一看,表是存在的。
接下执行如下语句:
show create table innodb_index_stats;
ERROR 1146 (42S02): Table'mysql.innodb_index_stats' doesn't exist
预判表是损坏了,尝试重新建表
解决方案
进入mysql的data目录,直接删除坏表的文件
如
ls /data/mysql/data/mysql
rm innodb_index_stats*
注意,以上方式还是不能彻底删除,建议如下方式
采用命令进行drop表
# 彻底删除表
drop table innodb_table_stats purge
然后再手动创建innodb_table_stats这张表,问题解决。
项目案例
您的微服务管家,如果觉得这个项目不错,请随手STAR一下,谢谢。
https://gitee.com/matevip/matecloud