innodb_index_stats系统表不存在
环境:
OS:Centos 7
DB:5.6.40
数据库报如下的错误
2021-09-24 14:40:00 7fda204c5700 InnoDB: Error: Tablespace for table "mysql"."innodb_table_stats" is missing.
2021-09-24 14:40:00 7fda204c5700 InnoDB: Error: Fetch of persistent statistics requested for table "zjs"."config_info" but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
2021-09-24 14:40:00 7fda203bd700 InnoDB: Error: Tablespace for table "mysql"."innodb_table_stats" is missing.
2021-09-24 14:40:00 7fda203bd700 InnoDB: Error: Fetch of persistent statistics requested for table "db_live"."live_room_detail" but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
尝试创建表,提示表已经存在
mysql> CREATE TABLE `innodb_index_stats` (
-> `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
-> `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
-> `index_name` varchar(64) COLLATE utf8_bin NOT NULL,
-> `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-> `stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
-> `stat_value` bigint(20) unsigned NOT NULL,
-> `sample_size` bigint(20) unsigned DEFAULT NULL,
-> `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
-> PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
ERROR 1050 (42S01): Table '`mysql`.`innodb_index_stats`' already exists
但是查找表提示不存在
mysql> select * from mysql.innodb_index_stats;
ERROR 1146 (42S02): Table 'mysql.innodb_index_stats' doesn't exist
查找相应的ibd frm也不存在
解决办法:
1.因为是系统表,从正常的库上拷贝这几个表的ibd frm 文件到故障库相应的目录
cp innodb_index_stats.frm /opt/mysql3307/data/mysql/
cp innodb_index_stats.ibd /opt/mysql3307/data/mysql/
cp innodb_table_stats.frm /opt/mysql3307/data/mysql/
cp innodb_table_stats.ibd /opt/mysql3307/data/mysql/
2.重启动mysql
/opt/mysql3307/bin/mysqladmin -h localhost -uroot -pyeemiao3040 -P3307 -S /opt/mysql3307/data/mysql.sock shutdown
/opt/mysql3307/bin/mysqld_safe --defaults-file=/opt/mysql3307/conf/my.cnf --user=mysql &
3.脱离表空间
use mysql;
alter table innodb_index_stats discard tablespace;
alter table innodb_table_stats discard tablespace;
4.加入表空间
use mysql;
alter table innodb_index_stats import tablespace;
alter table innodb_table_stats import tablespace;
--The End --
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-09-24 mongodb4.2主从(副本集附仲裁节点)部署带认证模式