面對表損壞,遵循「檢查 → 備份 → 修復 → 驗證」四步走,配合 myisamchk/isamchk 多層級檢查選項,最大程度保障數據安全。
.MYD、.MYI、.frm 到安全位置。--recover --quick → --recover → --safe-recover。log-bin)。mysql 專用賬戶操作,避免文件所有權混亂。| 表類型 | 工具 | 索引後綴 | 數據後綴 |
|---|---|---|---|
| MyISAM | myisamchk | .MYI | .MYD |
| ISAM | isamchk | .ISM | .ISD |
調用模式(支援通配符、路徑、多表):
myisamchk [options] tbl_name myisamchk [options] /path/to/db/*.MYI myisamchk [options] /path/to/datadir/*/*.MYI # 所有庫所有表
工具不判斷表位置,需在表目錄下運行或指定完整路徑,方便將文件拷貝到他處操作。
| 級別 | 選項 | 特點 | 適用場景 |
|---|---|---|---|
| 標準 | 無 / -s / --silent | 檢測 99.99% 錯誤,速度快 | 日常巡檢、大多數情況 |
| 中等 | -m / --medium-check | 比標準慢,比擴展快,僅發現 99.99% 錯誤 | 很少使用,意義有限 |
| 擴展 | -e / --extend-check | 逐行逐鍵驗證,極慢,大表慎用 | 疑難雜症、標準檢查無果但業務異常時 |
建議:日常用標準檢查;--extend-check 發現首個錯誤即停止,加 -v 可繼續報告最多 20 個錯誤。
-i / --information:輸出表統計信息(行數、索引長度等)。-C / --check-only-changed:僅檢查上次檢查後被修改的表,適合定時任務。-f / --force:發現錯誤自動執行修復(-r),慎用於生產環境。若 --extend-check 無錯誤報告,表結構完好。若業務仍異常,請排查: