您的位置:首页 > 数据库 > MySQL

修复mysql表的方法

2011-01-13 17:15 288 查看
问题描述
mysqld-nt: Table 'tablename' is marked as crashed and should be repaired

分析原因
操作系统关机时,正在往数据库的这个表里保存数据,导致表损坏。但多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少。

解决方法:

1.MySQL Command Line Client
分析表:analyze table xxx
检查表:check table xxx

如果,获得不是OK就是有问题需要修复。
修复表:repair table 表名 [选项]
选项如下:
QUICK 用在数据表还没被修改的情况下,速度最快
EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下。利用.frm的定义来重建索引
多数情况下,简单得用”repair table tablename”不加选项就可以搞定问题。但是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,例如:

另外,也可以使用myisamchk或者使用mysql内建命令mysqlcheck来修复。

参考:http://rubyqiu.php.blog.163.com/blog/static/86141523200810223225729/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: