技术支持产品重新部署一套环境。由运维迁移后Mysql发现好多表使用不了

慢sql:

> select n.news_id,n.url,n.source_id,n.tmcreate,n.caption,s.source_name from wly_news as n left join wly_source as s on n.source_id=s.source_id where 1 and s.source_id in (68663,68666,68667,68669,68684,68755) order by n.news_id desc limit 0,10

查看日志:

[ERROR] /usr/libexec/mysqld: Incorrect key file for table '/tmp/#sql_2f1c_21.MYI'; try to repair it

好吧,准备修复数据吧。

和运维沟通……扯了半天没解决问题。最终自己解决:

尝试键了几个索引,依然不行适得其反(具体可以百度,多表联查索引问题)……

于是删除新增索引,使用表修复命令:

数据表大部分使用的是MyISAM。众所周知,MyISAM表在服务器意外宕机或者mysqld进程挂掉以后,MyISAM表会损坏,数据小的话修复还比较快,但是数据如果有10G以上,那就悲剧了。那我们如何加快repair table快速高效执行呢?下面我们来看看解决方法。

首先通过repair table修复:

mysql> repair table test;

+—————+——–+———-+———————————————————+

| Table | Op | Msg_type | Msg_text |

+—————+——–+———-+———————————————————+

| test.test | repair | Error | Incorrect key file for table ‘test’; try to repair it |

| test.test | repair | error | Corrupt

如果还是没用,运行下面命令

mysql> repair table test USE_FRM;

+—————+——–+———-+———————————————————+

| Table | Op | Msg_type | Msg_text |

+—————+——–+———-+———————————————————+

| test.test | repair | Error |Number of rows changed from 0 to 110423 |

| test.test | repair | status | OK

按理应该可以了(这一步已经解决问题)。

如果还是没用,则退出mysql,执行如下修复动作:

myisamchk -of /var/lib/mysql/test/test.MYI

myisamchk -r /var/lib/mysql/test/test.MYI

myisamchk safe-recover /var/lib/mysql/test/test.MYI

再重启mysql后应该可以正常了。

mysql 迁移表时忽略索引_Mysql迁移新环境索引损坏相关推荐

  1. mysql建表时主键_mysql建表时设置主键的方法

    mysql建表时设置主键的方法 发布时间:2020-10-10 15:17:28 来源:亿速云 阅读:119 作者:小新 mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的.希 ...

  2. mysql建表时主键_mysql建表时怎么设置主键?

    设置方法:在"CREATE TABLE"语句中,通过"PRIMARY KEY"关键字来指定主键,语法格式"字段名 数据类型 PRIMARY KEY [ ...

  3. mysql 创建表时提示错误代码_MySQL创建表时遇到的错误

    学习MySQL第一个程序就遇到了bug .创建表时需注意的事项加以总结: 1.先创建数据库: create database 数据库名:然后连接要用的数据库 use 数据库名:下面就可以执行建表语句 ...

  4. mysql创建表时显示错误_MYSQL创建表出现错误 ERROR Code 1118如何解决

    ERROR Code 1118.Row size too large. The maximum row size for the used table type, not counting BLOBs ...

  5. mysql建表时插入中文_Mysql新建表,插入中文时报错“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”问题...

    有时候我们在往数据库中输入信息时,如果输入的内容是中文,会报错"Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column&q ...

  6. mysql创建表时添加范式_MySql三大范式与数据库设计和表创建常用语句

    [数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...

  7. mysql创建表时默认默认_mysql创建数据表时指定默认值教程

    指定默认值 如果在插入行时没有给出值,MySQL允许指定此时使用的默认值.默认值用 CREATE TABLE 语句的列定义中的 DEFAULT 关键字指定. 请看下面的例子: 输入:create ta ...

  8. mysql创建表时设置外键_mysql创建表时设置外键约束的方法

    mysql创建表时设置外键约束的方法 发布时间:2020-06-17 15:54:11 来源:亿速云 阅读:312 作者:元一 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中, ...

  9. oracle与mysql创建表时的区别

    oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表 CREATE TABLE predict_data as (id integer NOT NULL, uid varc ...

最新文章

  1. MySQL里 unique 用法_mysql中unique key中在查询中的使用
  2. Spark源码阅读02-Spark核心原理之消息通信原理
  3. 厉害了!一文看懂各大互联网支付系统整体架构
  4. 深入理解js系列一作用域是什么
  5. oracle明文传输http,oracle密码在网络传输中的安全问题
  6. 收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译
  7. thinkphp——登录界面
  8. Windows10键盘快捷键大全
  9. GraphSAGE+FM+Transformer强强联手:评微信的GraphTR模型
  10. less面试_面试必看:less与sass的区别
  11. Andorid 创建相册或文件夹
  12. 用什么软件测试内存条稳定,使用内存条检测工具监测内存稳定性,内存条检测工具有哪些...
  13. 对你快速了解恶意软件以及病毒和反病毒
  14. 24个最新创意进度条设计,分分钟让你灵感爆表!!!
  15. 微信公众号 php sdk,GitHub - yuanchenglu/wechat-php-sdk: 微信公众平台 PHP SDK
  16. 数学界再出变态神人!竟用一个比基尼方程,暴力吊打美国数学家!看完我惊了......
  17. 【Ubuntu升级报错】“the following signatures couldn’t be verified because the public key is not available”
  18. KindEditor使用简介
  19. 29.VUE自定义指令directive和inserted
  20. 注册表更改win7的UAC方法

热门文章

  1. QT实现在图表顶部绘制一个附加元素(标注)
  2. QT的 QAndroidJniObject类的使用
  3. c++预处理命令 #line 用法
  4. 6.Boost之smartpointer
  5. Hibernate延迟加载
  6. 循环: 打印1~10
  7. html中两个冒号,css中双冒号和单冒号区别
  8. python减法怎么表示_python运算符号之一的减法怎么用,你真的学会用python的使用方法了嘛...
  9. fatal error: alsa/asoundlib.h: 没有那个文件或目录错误解决办法
  10. 前端基础12:递归调用,快速排序和简单DOM元素操作