MyISAM/ISAM 表損壞是常見故障,修復遵循「檢查 → 備份 → 修復 → 失敗則從備份/日誌恢復」標準流程。本篇建立通用認知框架,區分 myisamchk(MyISAM)與 isamchk(ISAM)工具適用範圍,並強調操作前的關鍵防護措施。
.MYD、.MYI、.frm 到安全位置,防修復失敗導致資料永久遺失。myisamchk/isamchk **嚴禁在 MySQL 運行時直接操作資料目錄**,否則索引損壞概率極高。| 工具 | 適用表類型 | 索引副檔名 | 資料副檔名 | 備註 |
|---|---|---|---|---|
myisamchk | MyISAM | .MYI | .MYD | 現代主流,功能完整 |
isamchk | ISAM (舊版) | .ISM | .ISD | MySQL 3.23 前,極少見 |
# 單表
myisamchk [options] tbl_name
# 多表
myisamchk [options] tbl1 tbl2 ...
# 目錄下所有表(索引檔模式)
myisamchk [options] /path/to/datadir/*.MYI
# 所有庫所有表
myisamchk [options] /path/to/datadir/*/*.MYI
⚠️ Windows 下通配符 * 不由 Shell 展開,需改用 for 迴圈或指定具體檔案。
cd /datadir 進入資料目錄執行,或使用**絕對路徑**。詳細講解 myisamchk 三種檢查模式(標準/中等/擴展)、常用選項(-s 靜默、-e 擴展、-m 中等、-i 統計、-C 僅檢查變更表)與實戰參數組合。