如何修复损坏的mysql数据表

于断电或非正常关机而导致MySQL数据库出现错误是非常常见的问题。有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。

1. check table 和 repair table

登陆mysql 终端:

mysql -uxxxxx -p dbname

> check table tabTest;

如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:

> repair table tabTest;

进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:

myisamchk tablename.MYI

进行检测,如果需要修复的话,可以使用:

myisamchk -of tablename.MYI

关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

-----------------------------

另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:

[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。

需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!

检测修复所有数据库(表)

mysqlcheck -A -o -r -p

---------------------------------------------

示例:

mysql> check table tabFTPAccountInstances;

原创文章,转载请注明: 转载自搞代码

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

修复表mysql代码_怎么修复损坏的MySQL数据表相关推荐

  1. mysql在哪儿查看表的代码_查看mysql数据库及表编码格式

    转载来源:http://www.cnblogs.com/shootercheng/p/5836657.html ============================================ ...

  2. 图像修复 图像补全_图像修复简介

    图像修复 图像补全 In practical applications, images are often corroded by noise. These noises are dust or wa ...

  3. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  4. 是先设计mysql表再进行php代码_PHP与RBAC设计思路,数据表设计与源码讲解

    权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用 权限控制有哪些模型ACL RBAC 基于角色的访问控制 从上图我们可以看出,ACL是用户和 ...

  5. mysql查询两张表的同一列_如何快速查找两个数据表之间的相同和不同?

    原标题:如何快速查找两个数据表之间的相同和不同? 知识 随笔 案例 声音 其他 编者按 工作中经常会遇到对来源不同的数据进行比对,查找相同.不同.差异性等.过于复杂的需求,我们通常会转换思路,使用数据 ...

  6. mysql附录建表_用CREATE TABLE 语句创建数据表

    用CREATE TABLE 语句创建数据表 用 CREATE TABLE 语句创建表.此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单.如我们在第 1 章中使用的 ...

  7. mysql表的设计几种方式_支持多种登录方式的数据表设计 | 六阿哥博客

    一个带有用户系统的应用最基本登录方式是站内账号登录,但这种方式往往不能满足我们的需求.现在的应用基本都有站内账号.email.手机和一堆第三方登录,那么如果需要支持这么多种登录方式,或者还有银行卡登录 ...

  8. mysql if exists 数据表_使用IF NOT EXISTS创建数据表

    如果简单的使用如下sql语句可能会返回失败,失败的原因极有可能是已经存在这张数据表了. 如果简单的使用如下sql语句可能会返回失败,失败的原因极有可能是已经存在这张数据表了. create table ...

  9. mysql一个表几亿数据_如何在mysql 造1亿条记录的大容量数据表?

    背景及目标:现有数据1000w单表,为压力测试准备1亿条数据. 步骤: 1.将1000w条记录,除id外都导入到多个文件中: //DELIMITER DROP PROCEDURE if EXISTS ...

最新文章

  1. Buttomsheetdialog的简单实用
  2. 一文告诉你,谷歌是否真的实现了「量子至上」
  3. 英特尔用英伟达显卡,给GTA5打了个超强画质补丁
  4. 金融风控实战——Hive详解(数据读取、预处理、特征工程)
  5. mysql 联合索引详解
  6. php怎样使用pdo,PHP中使用PDO_PHP教程
  7. Retrofit的初次使用
  8. 拓端tecdat|python主题LDA建模和t-SNE可视化
  9. activiti学习资料(架构描述)
  10. AVOD-代码理解系列(三)
  11. cad安装日志文件发生错误_CAD安装不正确怎么办?CAD发生错误安装过早结束的解决方法...
  12. 英语单词前缀规则总结
  13. 戴尔t620服务器怎么进bios设置u盘启动(戴尔进入u盘启动设置)
  14. Linux iptables MASQUERADE的作用
  15. APP应用分发平台分析(一)
  16. 斜杠 反斜杠  双斜杠 双反斜杠
  17. 送书 | 聊聊逆向爬取数据
  18. 邹城的关于机器人教育_济宁市教育局 文件公告 关于公布济宁市第四批中小学机器人教育实验室建设试点学校名单的通知...
  19. 中国书法的价值和意义
  20. 蓝牙dun协议修改后刷机步骤!

热门文章

  1. MurmurHash算法
  2. Unity2D游戏开发—— 控制主角 左右移动及跳跃 代码
  3. OpenGL旋转立方体的实现
  4. 诚之和:千万流量凉凉!大V“招财大牛猫”遭永久禁言
  5. JVM 上数据处理语言的竞争:Kotlin, Scala 和 SPL
  6. 睡眠与健康:你的睡姿可能不对喔~
  7. 卷积层与全连接层的区别
  8. 上传功能ie9_IE9的新增功能
  9. 《生僻字》《就是胖了这么着》歌词完整版
  10. java integer的范围_java integer的取值范围是什么?