Home > Database > Mysql Tutorial > MySQL修复表的三种方法

MySQL修复表的三种方法

WBOY
Release: 2016-06-07 15:46:58
Original
1514 people have browsed it

也许很多人遇到过类Can’topenfile:‘[Table]mytable.MYI’这样的错误信息,却不知道怎么解决他,下面我们做个介绍, 多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少。大多数形式的数据库破坏的的修复相当简单。 和前面的校

也许很多人遇到过类似Can’t open file: ‘[Table]mytable.MYI’ 这样的错误信息,却不知道怎么解决他,下面我们做个介绍,

多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少。大多数形式的数据库破坏的的修复相当简单。

和前面的校验一样,修复的方式也有三种。

下面讲的方法只对MyISAM格式的表有效。其他类型的损坏需要从备份中恢复。

1,REPAIR TABLE SQL statement(mysql服务必须处于运行状态)。

2,命令mysqlcheck(mysql服务可以处于运行状态)。

3,命令myisamchk(必须停掉mysql服务,或者所操作的表处于不活动状态)。

在修复表的时候,最好先作一下备份。所以你需要两倍于原始表大小的硬盘空间。请确保在进行修复前你的硬盘空间还没有用完。

1、用”repair table”方式修复

语法:repair table 表名 [选项]

选项如下:

QUICK 用在数据表还没被修改的情况下,速度最快

EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用

USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下。利用.frm的定义来重建索引

多数情况下,简单得用”repair table tablename”不加选项就可以搞定问题。但是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,

例如:

mysql> REPAIR TABLE mytable;

修复失败的原因时索引文件丢失或者其头部遭到了破坏,为了利用相关定义文件来修复,需要用USE_FRM选项。例如:

mysql> REPAIR TABLE mytable USE_FRM;

我们可以看到Msg_test表项的输出信息”ok”,表名已经成功修复受损表。

http://bbs.landingbj.com/t-0-250391-1.html


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template