一张损坏的表的症状通常是查询意外中断并且能看到下述错误:
"tbl_name.frm"被锁定不能更改;
不能找到文件"tbl_name.MYI";
文件意外结束;
记录文件被毁坏;
从表处理器得到错误;
解决方法如下:
方法一:
myisamchk -r tablename
上面的方法几乎能解决所有问题,如果不行,则使用:
myisamchk -o tablename
方法二:
1) CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
2) REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE
tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
使用MyISAM作为存储引擎的表经常会出现这种问题,一般恢复下就可以正常运行,但不能保证所有的损坏情况都能恢复。在设计数据库初期应该考虑到系统是否能够承受这样的风险。
该贴被Robin编辑于2014-8-2 15:19:54该贴由hui.chen转至本版2014-11-5 16:18:26
该贴由hui.chen转至本版2014-11-5 16:22:21