function_products(MyISAM 引擎).frm(結構)、.MYD(數據)、.MYI(索引)第三方工具 MySQLRecovery:數十 MB 數據文件僅恢復出數十 KB,不可用。
.MYD、.MYI 到安全位置.MYI 索引文件操作,數據文件 .MYD 不會被覆寫# 進入數據目錄
cd C:\mysql\data\hw_enterprice
# 1. 普通檢查
myisamchk function_products.MYI
# 2. 深度檢查(慢但徹底)
myisamchk --extend-check function_products.MYI
# 3. 自動修復(安全模式,僅修復索引)
myisamchk --recover --quick function_products.MYI
# 4. 強力修復(重建索引,耗時較長)
myisamchk --recover function_products.MYI
# 5. 極度損壞時嘗試(最後手段)
myisamchk --safe-recover function_products.MYI
# 檢查某庫所有表
myisamchk C:\mysql\data\dbname\*.MYI
# 檢查所有庫所有表
myisamchk C:\mysql\data\*\*.MYI
C:\> cd mysql\data\hw_enterprice
C:\mysql\data\hw_enterprice> myisamchk --recover function_products.MYI
- recovering (with sort) MyISAM-table 'function_products.MYI'
Data records: 12345
- Fixing index 1
- Fixing index 2
...
OK
修復完成後啟動 MySQL 服務,驗證 CHECK TABLE function_products 返回 OK,業務查詢恢復正常。
mysqladmin shutdown 或 service mysqld stopREPAIR TABLE 內建並行修復,效率更高| 目的 | 命令 |
|---|---|
| 普通檢查 | myisamchk tbl_name.MYI |
| 深度檢查 | myisamchk --extend-check tbl_name.MYI |
| 快速修復 | myisamchk --recover --quick tbl_name.MYI |
| 標準修復 | myisamchk --recover tbl_name.MYI |
| 安全修復 | myisamchk --safe-recover tbl_name.MYI |
| 強制覆蓋 | myisamchk --recover --force tbl_name.MYI |