如何修复损坏的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. 12 生成器和生成器函数以及各种推导式
  2. 【005】◀▶ C#学习笔记(四)(集合)
  3. XDebug分析php代码性能
  4. 网站502与504错误分析
  5. 四元数(Quaternion)和欧拉角(Eulerangle)
  6. DMA存储器到外设代码讲解
  7. Jupyter notebook 使用过程中的一些小技巧总结
  8. pks系统如何添加服务器,pks服务器的上电步骤.pdf
  9. microstation添加txt文件_C开发实战-文件操作
  10. Mysql学习笔记(六)增删改查
  11. Python 3.9.0 首个迭代版本发布了
  12. 使用Entity Framework和Web API的ASP.NET Core Blazor CRUD
  13. centos7改语言包
  14. VS2019下安装NumCpp库小结
  15. 苹果电脑 默认安装jdk位置_CH01_JDK安装和配置(含macOS)
  16. 2021年下软考高项信息系统项目管理师真题试卷答案解析
  17. Oracle 数据库插入时间字段
  18. Jsp jsp实现原理
  19. fortran - 用函数进行kind定义
  20. python docx 图片_详解用 python-docx 创建浮动图片

热门文章

  1. 再生核Hilbert空间
  2. 微信小程序的双向数据绑定
  3. 微分matlab程序,数值微分及其matlab程序.doc
  4. AndroidStudio jni C++与Java互相调用
  5. 关于梦想是计算机的作文英语,关于的梦想英语作文
  6. 半桶水开发 CMPP2.0 with Spring + JPA 2
  7. 8张图理解Java---importnew---programcreek
  8. python3.7怎么换行_python3中怎么实现换行输出
  9. [转载]打工辛酸路:我是一朵飘零的花之76
  10. html+css+js炫酷特效+加速粒子效果