InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal问题解决

Posted MateCloud微服务

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal问题解决相关的知识,希望对你有一定的参考价值。

问题描述

本次记录一次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

以上是关于InnoDB: Error: table `mysql`.`innodb_table_stats` does not exist in the InnoDB internal问题解决的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 5.6 解决InnoDB: Error: Table "mysql"."innodb_table_stats" not found.问题

Error: Table "mysql"."innodb_table_stats" not found.

MySQL Error--InnoDB Table mysqlinnodb_index_stats has length mismatch in the column

Mysql数据库提示innodb表不存在

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist(

mysql集群无法启动成功