MySQL错误日志提示innodb_table_stats和innodb_index_stats不存在故障处理

本文介绍了一种 MySQL InnoDB 引擎中 innodb_table_stats 和 innodb_index_stats 表丢失的情况及解决方案。该问题可能导致性能下降,并通过重建系统表的方式解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看MySQL error日志,发现有如下报错

 7efbc586f700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2016-05-22 12:04:11 7efbc586f700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2016-05-22 12:04:11 7efbc586f700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2016-05-22 12:04:11 7efbc586f700 InnoDB: Error: Fetch of persistent statistics requested for table "alog"."wmp_sale_order_0126" 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.
2016-05-22 12:04:21 7efbbdffb700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2016-05-22 12:04:21 7efbbdffb700 InnoDB: Recalculation of persistent statistics requested for table "alog"."wmp_sale_order_0126" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.

造成这个原因的问题可能是在初始化的过程中,删掉了ibdata1的文件导致,处理的方法

1.删除上述系统表
drop table mysql.innodb_index_stats;
drop table mysql.innodb_table_stats;
2 /etc/init.d/mysqld stop
3 cd /data/3306/data/mysql/
4 rm -rf innodb_index_stats* innodb_table_stats*
5 /etc/init.d/mysqld start
6 mysql> use mysql
Database changed
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;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE `innodb_table_stats` (
    ->   `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
    ->   `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
    ->   `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    ->   `n_rows` bigint(20) unsigned NOT NULL,
    ->   `clustered_index_size` bigint(20) unsigned NOT NULL,
    ->   `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
    ->   PRIMARY KEY (`database_name`,`table_name`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

问题解决

转载于:https://www.cnblogs.com/olinux/p/5542957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值