MySQL 遠程數據庫一鍵導入本地:mysqldump 管道流式傳輸實戰
避免中間落地文件,利用管道將 mysqldump 輸出直接導入本地 MySQL,支援壓縮、跳過鎖表、大數據集高效遷移。
核心命令
mysqldump -h '114.212.111.123' -uROSE -pxxxooo \
--opt --compress --skip-lock-tables ITSM \
| mysql -h localhost -uroot -proot ITSMC
參數詳細解析
| 參數 | 說明 | 建議 |
-h | 遠程/本地主機 IP 或域名 | 遠程用公網/內網 IP,本地用 localhost |
-u | 用戶名(緊跟無空格) | -uROSE |
-p | 密碼(緊跟無空格,生產環境建議配置文件) | -pxxxooo |
--opt | 啟用優化組合:--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset | 默認開啟,可省略 |
--compress | 客戶端/服務端壓縮傳輸,節省帶寬 | 跨公網/低帶寬必加 |
--skip-lock-tables | 不鎖表(配合 --single-transaction 實現一致性備份) | InnoDB 必加,避免阻塞寫入 |
--single-transaction | 啟動事務一致性備份(需 InnoDB) | 生產環境必加,替代 --lock-tables |
--quick / -q | 逐行讀取不緩存,大表必加 | 默認開啟 |
--no-data / -d | 僅導出結構 | 按需使用 |
--no-create-info / -t | 僅導出數據 | 按需使用 |
生產環境增強版
# 遠程備份並同步導入(含事務一致性、壓縮、進度顯示)
mysqldump -h 'remote-host' -u'user' -p'pass' \
--single-transaction --quick --compress \
--default-character-set=utf8mb4 \
--skip-lock-tables --skip-add-locks \
--hex-blob --routines --triggers \
--databases db1 db2 \
| pv -N "Import" \
| mysql -h localhost -u'root' -p'pass' \
--default-character-set=utf8mb4 \
--force target_db
# pv (Pipe Viewer) 顯示傳輸進度、速度、ETA
# --force 忽略部分錯誤繼續執行
# --hex-blob 二進制數據十六進制導出,避免編碼問題
常見問題與解決
| 問題 | 原因 | 解決 |
| ERROR 2013: Lost connection | 大表傳輸超時 | 增加 net_read_timeout/net_write_timeout;分表導出 |
| ERROR 1153: Packet too large | 單行/單包超過 max_allowed_packet | 兩端同步調大:SET GLOBAL max_allowed_packet=1G |
| 字符集亂碼 | 兩端字符集不一致 | 指定 --default-character-set=utf8mb4;目標庫預設 utf8mb4 |
| 外鍵約束報錯 | 導入順序導致父表未建 | 加 --skip-lock-tables;或先導結構後導數據;或臨時關閉 FOREIGN_KEY_CHECKS=0 |
| GTID/複製報錯 | 備份含 GTID 資訊導入非主庫 | 加 --set-gtid-purged=OFF |
大數據集分表導出腳本
<?bash
# 導出單表,避免單一巨大流
TABLES=$(mysql -h remote -u user -ppass -N -e "SHOW TABLES FROM dbname")
for TABLE in $TABLES; do
echo "Exporting $TABLE..."
mysqldump -h remote -u user -ppass \
--single-transaction --quick --compress \
dbname $TABLE \
| mysql -h localhost -u root -ppass dbname
done
- 上一篇文章: SUSE 11 MySQL 5.1 升級 5.5 完整操作手冊:RPM 卸載、清理、安裝與驗證
- 下一篇文章: MySQL 視圖完整指南:創建、修改、更新限制、權限控制與刪除
Copyright ©
程式碼之家 All Rights Reserved