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

MySQL 表損壞修復全流程:myisamchk / isamchk 參數遞進策略

     編輯:MySQL 資料庫相關知識

MyISAM 表損壞時,官方工具 myisamchk(MyISAM)與 isamchk(舊 ISAM)提供分級修復方案。建議按順序嘗試,由輕到重。

修復指令遞進表

階段指令說明
1. 輕量快速修復myisamchk --recover --quick tbl_name只修復索引樹,不動資料檔,速度最快
2. 標準修復myisamchk --recover tbl_name移除 --quick,重建資料檔與索引,較徹底
3. 安全模式修復myisamchk --safe-recover --quick tbl_name用較舊、較穩定演算法,適用前兩者失效情況
4. 完全安全修復myisamchk --safe-recover tbl_name最徹底但最慢,終極手段

操作前必做準備

  1. 停止 MySQL 服務:systemctl stop mysql 或 mysqladmin shutdown,避免檔案被鎖定。
  2. 備份原始檔案:.MYD(資料)、.MYI(索引)、.frm(結構)全備份。
  3. 進入資料目錄:通常在 /var/lib/mysql/db_name/。

InnoDB 表怎麼辦?

InnoDB 不支援 myisamchk。損壞時請嘗試:

  • innodb_force_recovery=1~6 啟動參數強制啟動導出資料。
  • 或用 mysqldump 導出後重建表。

預防勝於治療

  • 定期 CHECK TABLE 早期發現問題。
  • 使用 RAID/雲端磁碟、啟用 sync_binlog=1、innodb_flush_log_at_trx_commit=1 保障寫入安全。
  • 避免強制關機、殺進程、磁碟滿寫入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved