首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 數據表修復一條命令:mysqlcheck --auto-repair 實戰

     編輯:MySQL 綜合教學

修復所有數據庫

mysqlcheck --auto-repair -A -o -uroot -p'yourpass'
  • -A / --all-databases:所有庫;
  • -o / --optimize:修復後優化(整理碎片、更新統計);
  • --auto-repair:檢測到損壞自動修復。

修復單一數據庫

mysqlcheck --auto-repair --databases db_name -o -uroot -p'yourpass'

參數速查

參數作用
-c / --check僅檢查不修復
-r / --repair修復(不自動,需配合 --auto-repair)
-a / --analyze分析鍵分佈(優化器統計)
-o / --optimize優化表(MyISAM 整理碎片、InnoDB 重建)
-q / --quick僅檢查索引,不掃描數據行(快)
-F / --fast僅檢查未正確關閉的表

引擎差異

  • MyISAM:mysqlcheck 等同 myisamchk,可離線運行(停庫),速度更快;
  • InnoDB:mysqlcheck 執行 CHECK TABLE / REPAIR TABLE(實為 ALTER TABLE ... ENGINE=InnoDB 重建),需在線運行;
  • 生產環境建議從庫執行,避免主庫鎖表影響業務。

定時任務建議

# crontab -e
0 3 * * 0 /usr/bin/mysqlcheck --auto-repair -A -o -uroot -p'pass' >> /var/log/mysqlcheck.log 2>&1
# 每週日 3 點全庫檢查修復優化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved