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

MySQL 數據導出導入實戰:mysqldump 完整參數指南與還原驗證

     編輯:MySQL 資料庫相關知識

導出整個資料庫

mysqldump -u root -p testdb > testdb.sql
# 輸入密碼後生成 testdb.sql

導出檔案結構解析

testdb.sql 包含:

  • 版本/字符集/時區/檢查開關設定(/*!40101 SET ... */ 版本條件註釋)
  • DROP TABLE IF EXISTS + CREATE TABLE(含引擎、字符集、主鍵)
  • LOCK TABLES WRITE + INSERT 批次資料 + UNLOCK TABLES
  • ALTER TABLE DISABLE/ENABLE KEYS 加速導入
  • 結尾恢復會話變數

常用進階參數

參數作用
--single-transactionInnoDB 熱備份,不鎖表,保證一致性快照
--routines --triggers --events包含存儲過程、觸發器、定時事件
--master-data=2輸出 CHANGE MASTER TO 註釋,備份位點資訊(主從同步必備)
--hex-blob二進制欄位(BLOB/BINARY)以十六進制導出,避免編碼問題
--compress客戶端/伺服器傳輸壓縮
--quick大表逐行讀取不緩存,減少記憶體佔用
--lock-tables=false不鎖表(配合 --single-transaction)

生產環境標準備份命令

mysqldump -u backup_user -p \
  --single-transaction \
  --routines --triggers --events \
  --master-data=2 \
  --hex-blob \
  --quick \
  --databases db1 db2 > /backup/mysql_$(date +%F).sql

導入/還原

# 方式一:管道導入
mysql -u root -p testdb < testdb.sql

# 方式二:客戶端內部執行
mysql> SOURCE /path/to/testdb.sql;

# 方式三:壓縮檔直接導入
gunzip < testdb.sql.gz | mysql -u root -p testdb

導出單表 / 條件導出

# 單表
mysqldump -u root -p testdb user > user.sql

# WHERE 條件導出(如僅導出近 30 天資料)
mysqldump -u root -p testdb user --where="created_at > DATE_SUB(NOW(), INTERVAL 30 DAY)" > user_recent.sql

驗證備份可用性

  1. 檢查檔案大小非 0,頭尾有預期註釋。
  2. 測試環境執行 SOURCE 還原,核對表結構、行數、抽樣資料。
  3. 校驗和:sha256sum backup.sql 記錄,防範檔案損壞/竄改。

總結

mysqldump 是最通用、可攜帶、可審計的備份工具。掌握 --single-transaction、--master-data、--where 等核心參數,即可應對從開發測試到生產主從同步的全場景備份需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved