// 本地測試環境 D:\xampp\mysql\bin>myisamchk -c -r ../data/aiyingli_db/rank_all - recovering (with sort) MyISAM-table '../data/aiyingli_db/rank_all' Data records: 0 - Fixing index 1 - Fixing index 2 myisamchk: error: myisam_sort_buffer_size is too small MyISAM-table '../data/aiyingli_db/rank_all' is not fixed because of errors Try fixing it by using the --safe-recover (-o), the --force (-f) option or by no t using the --quick (-q) flag
介紹:首先介紹一下Mysql的data文件夾(也就是村表的文件夾),存儲大小不能過小!rmysql
ank_all 爲表名sql
在data目錄下rank_all有三個後綴爲rank_all.frm、rank_all.MYD、rank_all.MYI.測試
.frm 爲表結構ui
.MYD 爲表數據spa
.MYI 爲表索引code
.TMD 這個後綴具體是什麼我也無法解釋,大概在執行這段命令 REPAIR TABLE rank_all USE_FRM 的時候會出現索引
問題一:個人表MYI後綴文件沒有了怎麼辦?it
問題二:有MYI後綴的文件但仍是報錯?io
問題三:我沒有了MYD表數據文件怎麼辦?table
問題一和問題二能夠同用一種方法解決步驟:
用」repair table」方式修復
語法:repair table 表名 [選項] 例子:repair table rank_all
若是此方法報錯能夠直接使用:REPAIR TABLE rank_all USE_FRM
上面方法執行了好長時間沒有動靜,那就停掉命令吧!
而後換成另外一種方法:myisamchk -c -r ../data/rank_all
而後會報錯說是 myisamchk: error: myisam_sort_buffer_size is too small
解決辦法:D:\xampp\mysql\bin>myisamchk -c -r ../data/aiyingli_db/rank_all --sort_buffer_size=2G
注意:在執行的過程當中可能須要花費一點時間,耐心等待!此方法通過測試。
問題三解決方法:
若是有TMD後綴的文件,複製一份直接修改成 [表名].MYD
注意:此方法沒有測試,網上看到的