今天中午对mysql一张400多万数据的大表进行delete操作时,意外的把服务器搞宕了。重启之后发现该表处于半瘫痪状态,使用select * from tablename 可以执行,但select * from tablename order by id desc limit 5就会出现134错误:Got error 134 from table handler。
发现是表文件损坏了,使用myisamchk -r tablename进行修复,控制台结果如下:
myisamchk -r tablename
- recovering (with sort) MyISAM-table 'tablename'
Data records: 4085498
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
- Fixing index 5
- Fixing index 6
- Fixing index 7
- Fixing index 8
- Fixing index 9
- Fixing index 10
- Fixing index 11
Data records: 4020744
但进入mysql仍然不能使用。
最后在mysql>下输入 repair table tablename 成功修复了错误。