mysqldump 是 MySQL 官方邏輯備份工具,支援全庫、單表、多庫、僅結構、壓縮、跨主機遷移等多種場景。本文彙整生產環境最高頻的 8 大指令模板,附帶參數說明與還原範例。
| 場景 | 指令 | 關鍵參數說明 |
|---|---|---|
| 標準單庫備份 | mysqldump -h host -u user -p db > backup.sql |
-h 主機、-u 使用者、-p 密碼(互動式較安全) |
| 含 DROP TABLE 的備份 | mysqldump --add-drop-table -u user -p db > backup.sql |
還原前自動刪除同名表,適合覆蓋式恢復 |
| 壓縮備份 | mysqldump -h host -u user -p db | gzip > backup.sql.gz |
管道導向 gzip,節省磁碟空間 |
| 指定表備份 | mysqldump -h host -u user -p db t1 t2 > backup.sql |
表名以空格分隔,可指定多張 |
| 多庫同時備份 | mysqldump -h host -u user -p --databases db1 db2 db3 > multi.sql |
--databases 宣告多庫模式 |
| 僅備份結構 | mysqldump --no-data --databases db1 db2 > struct.sql |
--no-data 排除資料,僅含 CREATE TABLE |
| 全例備份 | mysqldump --all-databases > all.sql |
包含 mysql 系統庫,遷移首選 |
mysql -h host -u user -p db < backup.sql
gunzip < backup.sql.gz | mysql -u user -p db
mysqldump -u user -p db | mysql --host=target_ip -C db
-C 啟用壓縮傳輸,加速廣域網遷移。
--opt = --quick --add-drop-table --add-locks --extended-insert --lock-tables(預設開啟,最快匯出)--quick:不緩衝查詢結果,直接串流輸出,大表必備--single-transaction:InnoDB 熱備份關鍵,配合 --master-data=2 獲取一致性位置--where:條件式備份,如 --where="id > 1000"--default-character-set / --set-charset:字符集指定,避免亂碼--single-transaction --master-data=2 確保一致性不鎖表。mysql -u user -p test_db < backup.sql。mydumper 多執行緒並行備份提速。掌握上述指令組合,即可應對從開發測試到生產災備的完整生命週期需求。