常見損壞成因
- MySQL 進程在寫入過程中被強制終止(kill -9)。
- 伺服器意外關機(斷電、系統崩潰)。
- 硬體故障(磁碟壞道、記憶體錯誤)。
- 外部程式(如 myisamchk)在服務器修改表時同時操作該表。
- MySQL 或 MyISAM 代碼本身的軟體缺陷。
典型損壞徵兆
- 查詢時出現
Incorrect key file for table: '...'. Try to repair it 錯誤。
- 查詢找不到行、或返回不完整的結果集。
檢查與修復工具
服務器運行時: 使用 SQL 語句 CHECK TABLE 檢查健康狀態,REPAIR TABLE 修復損壞表。
服務器停止時: 使用命令列工具 myisamchk 檢查或修復。
頻繁損壞的根因排查
- 查看錯誤日誌中是否有最近的
restarted mysqld 訊息,若有則損壞多為服務器崩潰所致。
- 若無崩潰記錄,損壞可能發生在正常操作中,屬於軟體缺陷。應嘗試建立可重現的測試案例並回報。