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

MySQL 備份神器 mysqldump 參數完整手冊與實戰範例

     編輯:MySQL 資料庫相關知識

基本語法

mysqldump [OPTIONS] database [tables...]
# 不指定 tables 則導出整庫

核心參數分類速查

參數短參數功能說明
--add-locks每表導出前後加 LOCK/UNLOCK TABLES,加速匯入
--add-drop-tableCREATE 前加 DROP TABLE IF EXISTS
--allow-keywords允許關鍵字作欄位名(加表名前綴)
--complete-insert-cINSERT 含欄位名,利於跨庫匯入
--compress-C客戶端/伺服器協定壓縮
--delayed-insert使用 INSERT DELAYED
--extended-insert-e多行 INSERT 語法,檔案更小、匯入更快
--flush-logs-F導出前刷新 Binlog
--force-f遇錯誤繼續導出
--host-h指定遠端主機
--lock-tables-l導出前鎖定所有表
--no-create-info-t不輸出 CREATE TABLE(僅資料)
--no-data-d不輸出資料(僅結構)
--opt啟用 --quick --add-drop-table --add-locks --extended-insert --lock-tables 組合(推薦生產備份)
--password-p指定密碼(-ppwd 無空格)
--port-PTCP 埠號
--quick-q逐行輸出不緩衝,適合大表
--socket-SUnix Socket 路徑
--tab=路徑-T產生 .sql(結構) + .txt(資料) 兩檔,需同機運行
--user-u連線用戶
--verbose-v詳細輸出
--where-wWHERE 條件過濾(必須加引號)

實戰範例集

1. 標準完整備份(生產環境推薦)

mysqldump --opt --single-transaction --master-data=2 -u root -p db_name > backup_$(date +%F).sql
  • --single-transaction:InnoDB 一致性熱備份(不鎖表)
  • --master-data=2:輸出 CHANGE MASTER TO 註解(含 Binlog 位置),利於主從搭建

2. 僅結構備份(Schema 遷移)

mysqldump -d -u root -p db_name > schema.sql

3. 僅資料備份(重建測試環境)

mysqldump -t -u root -p db_name > data.sql

4. 條件式導出(歷史資料歸檔)

mysqldump -w "created_at < '2023-01-01'" -u root -p db_name orders > orders_2022.sql

5. CSV 格式導出(給 Excel/BI 工具)

mysqldump -T /tmp/export --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by='\n' -u root -p db_name tbl_name

6. 遠端備份並直接導入另一伺服器

mysqldump --opt -h src_host -u root -p db_name | mysql -h dst_host -u root -p db_name

7. 還原備份

mysqladmin -u root -p create target_db
mysql -u root -p target_db < backup.sql

大型資料庫備份策略建議

  • 分庫/分表並行導出(& 背景執行)
  • 搭配 --single-transaction 避免長時間鎖表
  • 定期驗證還原可行性(CHECKSUM TABLE、抽樣查詢)
  • 備份檔異地加密儲存(GPG、S3 SSE)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved