首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 表損壞修復:myisamchk / isamchk 完整指令參考

     編輯:MySQL 資料庫相關知識

修復指令階層(由輕到重)

第一層:快速修復(推薦首選)

myisamchk --recover --quick tbl_name
isamchk --recover --quick tbl_name

僅修復索引檔,不動資料檔,速度最快。

第二層:標準修復

myisamchk --recover tbl_name
isamchk --recover tbl_name

移除 --quick,完整掃描資料檔重建索引。

第三層:安全修復(最後手段)

myisamchk --safe-recover --quick tbl_name
isamchk --safe-recover --quick tbl_name

使用較舊但更穩健的演算法,處理嚴重損壞情況。

操作前必要步驟

  1. 停止 MySQL 服務 或 鎖定表(參考 鎖表教學)
  2. 備份 .MYD、.MYI、.frm 檔案
  3. 在資料目錄下執行上述指令
  4. 修復完成後重啟服務驗證

配合:表鎖定與解鎖

-- 唯讀鎖定(允許查詢,禁止寫入)
LOCK TABLE tbl_name READ;
FLUSH TABLES;

-- 執行修復...

-- 解鎖
UNLOCK TABLES;

嚴格模式:LOCK TABLE tbl_name WRITE(禁止讀寫)

預防勝於治療

  • 啟用 myisam_recover_options(舊版 myisam-recover)自動修復
  • 定期 CHECK TABLE 掃描異常
  • 避免強制關機、磁碟滿、記憶體不足
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved