mysql数据库受到破坏的修复
阿Q @ 星期日, 十二月 16th, 2007 (阅读: 1178) 修复数据表
多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少。大多数形式的数据库破坏的的修复相当简单。和前面的校验一样,修复的方式也有三种。
下面讲的方法只对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 fixtures;+————————-+——–+———-+———————————————+| Table | Op | Msg_type | Msg_text |+————————-+——–+———-+———————————————+| sports_results.fixtures | repair | error | Can’t find file: ‘fixtures.MYI’ (errno: 2) |+————————-+——–+———-+———————————————+
修复失败的原因时索引文件丢失或者其头部遭到了破坏,为了利用相关定义文件来修复,需要用USE_FRM选项。例如:mysql> REPAIR TABLE fixtures USE_FRM;+————————-+——–+———-+————————————+| Table | Op | Msg_type | Msg_text |+————————-+——–+———-+————————————+| sports_results.fixtures | repair | warning | […]






操作选项
