修復mysql表的方法 問(wèn)題描述 mysqld-nt: Table 'tablename' is marked as crashed and should be repaired 分析原因 操作系統關(guān)機時(shí),正在往數據庫的這個(gè)表里保存數據,導致表?yè)p壞。但多數情況下,數據庫被破壞只是指索引文件受到了破壞,真正的數據被破壞掉的情況非常少。 解決方法: 1.MySQL Command Line Client 分析表:analyze table xxx 檢查表:check table xxx 如果,獲得不是OK就是有問(wèn)題需要修復。 修復表:repair table 表名 [選項] 選項如下: QUICK 用在數據表還沒(méi)被修改的情況下,速度最快 EXTENDED 試圖去恢復每個(gè)數據行,會(huì )產(chǎn)生一些垃圾數據行,萬(wàn)般無(wú)奈的情況下用 USE_FRM 用在.MYI文件丟失或者頭部受到破壞的情況下。利用.frm的定義來(lái)重建索引 多數情況下,簡(jiǎn)單得用”repair table tablename”不加選項就可以搞定問(wèn)題。但是當.MYI文件丟失或者頭部受到破壞時(shí),這樣的方式不管用,例如: 另外,也可以使用myisamchk或者使用mysql內建命令mysqlcheck來(lái)修復。 參考:http://rubyqiu.php.blog.163.com/blog/static/86141523200810223225729/ |