背景 对MySQL错误日志进行排查,发现几乎所有的服务器都会报类似错误

查看mysql错误日志

发现如下报错

[ERROR] InnoDB: Table`mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.658189Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.658189Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.668231Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.668231Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.668231Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:09:23.678192Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:10:11.298340Z 0 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

2018-12-18T07:10:11.298340Z 0 [Warning]InnoDB: Recalculation of persistent statistics requested for table `dzyd`.`#sql-528_1e0b85#p#gps_p_20181218`/* Partition `gps_p_20181218` */ but the required persistent statistics storageis not present or is corrupted. Using transient stats instead.

2018-12-18T07:10:26.158389Z 1969029 [ERROR]InnoDB: Table `mysql`.`innodb_table_stats` not found.

日志解析 :1,ql库中innodb_table_stats,innodb_index_stats  不存在 (可不仅仅是这两个表,可能还有其他表)

2,创建gps_p_20181218表时因为innodb_table_stats,innodb_index_stats这两个表的状态 出现意外而无法进行

出现上述情况原因

1数据库打开这几张表的默认引擎为MyISAM,但是这几张表在建表时的引擎为INNODB

2 数据库迁徙 或初始化时 删除过ibdata1(未知原因造成数据表丢失或损坏)

解决方法 删表重建(还可以全部重建,谨慎起见还是缺啥建啥吧)

1手动删建

mysql> use mysql;

CREATE TABLE `innodb_index_stats` (

`database_name` varchar(64) COLLATEutf8_bin NOT NULL,

`table_name` varchar(64) COLLATEutf8_bin NOT NULL,

`index_name` varchar(64) COLLATEutf8_bin NOT NULL,

`last_update` timestamp NOT NULLDEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`stat_name` varchar(64) COLLATEutf8_bin NOT NULL,

`stat_value` bigint(20) unsigned NOTNULL,

`sample_size` bigint(20) unsignedDEFAULT NULL,

`stat_description` varchar(1024)COLLATE utf8_bin NOT NULL,

PRIMARY KEY(`database_name`,`table_name`,`index_name`,`stat_name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8COLLATE=utf8_bin STATS_PERSISTENT=0;

CREATE TABLE `innodb_table_stats` (

`database_name` varchar(64) COLLATEutf8_bin NOT NULL,

`table_name` varchar(64) COLLATEutf8_bin NOT NULL,

`last_update` timestamp NOT NULLDEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`n_rows` bigint(20) unsigned NOTNULL,

`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=utf8COLLATE=utf8_bin STATS_PERSISTENT=0;

2登录数据库,进入mysql库,执行如下SQL删除表记住,一定要是drop table if exists

执行完后,可以用show tables查看一下,看表的数据是否已经比删除之前减少了

2、上一步操作完成后,停止数据库(5.7不用停止数据库),并进入到数据库数据文件所在目录,删除上面几个表所对应的idb文件

3、重新启动数据库,进入到mysql库,重建上面被删除的表结构:(经测试5.7不用重启立即生效)数据库的建表脚本在mysql软件的安装目录的share目录下或者mysql的安装包的script目录下(找一下看)

mysql去除重复数据 重建表_MySQL 中重建mysql库中的表相关推荐

  1. mysql去除重复数据

    mysql去除重复数据 根据one列查询重复的数据(根据单列判断重复) SELECT * FROM tab_test  WHERE ONE IN (SELECT ONE FROM testdelete ...

  2. mysql如何恢复单表_MySQL如何恢复单库或单表,以及可能遇到的坑

    前言: MySQL 逻辑备份工具最常用的就是 mysqldump 了,一般我们都是备份整个实例或部分业务库.不清楚你有没有做过恢复,恢复场景可能就比较多了,比如我想恢复某个库或某个表等.那么如何从全备 ...

  3. mysql 删除重复数据 保留一个_MySQL学习笔记-删除重复数据只保留一条

    有这样一张表,表数据及结果如下: 可以看出,school_name的字段值有重复数据(Abraham Lincoln High School 和Agoura High School分别出现两次),那么 ...

  4. MySQL去除重复数据,保留一条数据

    于我而言,这篇文章提供帮助最大的语句是 DELETE c1 FROM contacts c1 INNER JOIN contacts c2 WHEREc1.id > c2.id AND c1.e ...

  5. mysql去除重复数据 重建表_删除掉mysql 的.ibd,.frm,ibdata1,ib_logfile0和ib_logfile1文件后再drop表。然后重建此表,有问题吗...

    创建已经丢62616964757a686964616fe58685e5aeb931333433656631失的表结构 先要安装 mysql-utilities. // RedHatyum -y ins ...

  6. mysql去除重复数据保留一条_MySQL中删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...

  7. mysql scrapy 重复数据_小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题...

    作者:猿码道http://www.jianshu.com/p/544c319fd838 0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的1 ...

  8. mysql中如何去除重复数据_MySQL如何去除重复数据?

    这篇文章主要介绍了MySQL 去除重复数据实例详解的相关资料,需要的朋友可以参考下 MySQL 去除重复数据实例详解 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复 ...

  9. mysql中如何去除重复数据_mysql数据库如何去除重复数据

    mysql数据库去除重复数据的方法:1.查询需要删除的记录,会保留一条记录:2.删除重复记录,只保留一条记录,代码为[delete a from test1 a, (...)as bid from t ...

  10. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

    关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...

最新文章

  1. 颈椎前路caspar撑开器_“骨质增生”导致的颈椎病怎么破?
  2. linux apple开发环境,Objective-C开发环境设置
  3. 微信“拍一拍”,竟然可以使用Python实现,你get到了吗?
  4. 【OpenCV】OpenCV实战从入门到精通之 -- 图像对比度、亮度值调整
  5. PAT乙级(1029 旧键盘)
  6. Java NIO问题总结
  7. vue iview组件表格 render函数的使用
  8. SpringBoot-Learning-作者:翟永超
  9. 基于RS485的Modbus协议
  10. 阿里云服务器怎么配置安全组?
  11. python 批量下载视频_Python一键批量下载抖音无水印视频
  12. 【What if 系列】拖住那架飞机!
  13. Mac系统重置快捷键
  14. 通往测试架构师之路(1):那些家伙在干什么?
  15. linux操作压缩软件
  16. STM32 HAL库获取系统时钟与标准库获取系统时钟
  17. 情境领导者-第六章、产生胜利者 故事
  18. Kony开发入门及学习路线介绍
  19. html5制作学学课件,网页设计与制作教学课件作者HTML+CSS+JavaScript张洪斌教学资源5_JavaScript编程_电子课件课件.ppt...
  20. AD2019查看网络走线

热门文章

  1. Linux服务器配置Redis并启用PHP支持
  2. Zookeeper(一) zookeeper基础使用
  3. 这些 iOS 面试基础题目,你都深入了解吗?
  4. Jquery读取.Net WebService Json数据
  5. 怎样区分现代艺术和幼儿涂鸦
  6. php基于cookie的注册,php使用cookie实现记住用户名和实现代码
  7. 拓端tecdat|使用Python和Keras进行主成分分析、神经网络构建图像重建
  8. 拓端tecdat|豆瓣大数据分析告诉你,高评分影视密码
  9. java字符串计数从零还是从一,java – 计数和所有字符相同的最大字符串的起始索引...
  10. (20)python_matplotlib解决中文乱码问题