mysqldump 是 MySQL 官方邏輯備份工具,掌握其常用參數組合可覆蓋 95% 的導出導入場景。
mysqldump -h<主機> -u<用戶> -p<密碼> [選項] [數據庫/表...] > 輸出文件.sql
mysqldump -h10.210.211.51 -uroot -ptools --databases starry_oplat > starry_oplat_db.sql
--databases:輸出包含 CREATE DATABASE 與 USE 語句,便於直接導入新實例。mysqldump --opt -d 數據庫名 -u root -p > schema_only.sql
-d / --no-data:僅導出 DDL。--opt:啟用一組優化選項 (默認開啟),含 --add-drop-table、--extended-insert、--lock-tables 等。mysqldump -uroot -p db_name table1 table2 > tables.sql
mysql -uroot -p USE target_db; SOURCE /path/to/backup.sql;
| 參數 | 說明 |
|---|---|
--single-transaction | InnoDB 熱備必加,啟動一致性快照讀,避免鎖表阻塞寫入 |
--master-data=2 | 輸出 CHANGE MASTER 註釋 (含 Binlog 位點),搭建從庫必備 |
--routines --triggers --events | 導出存儲過程、觸發器、事件 (默認不導出) |
--hex-blob | 二進制字段用十六進制導出,避免字符集問題 |
--compress | 客戶端/服務端傳輸壓縮,跨網段備份加速 |
--skip-lock-tables | 配合 --single-transaction 使用,完全無鎖備份 |
SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; 導入後恢復並 COMMIT;,大幅提速。pv backup.sql | mysql -uroot -p db_name 顯示進度條。