mysqldump 是跨主機遷移、備份、同步的標準工具。本文整理遠程導出/導入標準命令、字符集指定、壓縮傳輸、突破 phpMyAdmin 2M 上傳限制的實戰技巧。
# 基礎語法
mysqldump -h -P -u -p > dump.sql
# 實例:導出 test 庫至本地 D 盤
mysqldump -h 192.168.1.224 -P 3306 -u root -p test > d:\test.sql
# 指定字符集(防亂碼,極重要!)
mysqldump --default-character-set=utf8mb4 -h 192.168.1.224 -u root -p test > d:\test.sql
# 多庫導出
mysqldump --databases db1 db2 > multi.sql
# 全庫導出
mysqldump --all-databases > all.sql
# 基礎語法
mysql -h -P -u -p < dump.sql
# 實例
mysql -h 192.168.1.224 -P 3306 -u root -p test < c:\test.sql
# 指定字符集導入
mysql --default-character-set=utf8mb4 -h 192.168.1.224 -u root -p test < c:\test.sql
| 場景 | 命令/技巧 |
|---|---|
| 大檔案壓縮傳輸 | mysqldump -h ... -u ... -p db | gzip > dump.sql.gzgunzip < dump.sql.gz | mysql -h ... -u ... -p db |
| 只導結構不導數據 | mysqldump -d -h ... -u ... -p db > schema.sql |
| 只導數據不導結構 | mysqldump -t -h ... -u ... -p db > data.sql |
| 單表導出 | mysqldump -h ... -u ... -p db table_name > table.sql |
| 忽略特定表 | mysqldump --ignore-table=db.log -h ... -u ... -p db > dump.sql |
| 主從同步一致性備份 | mysqldump --single-transaction --master-data=2 -h ... -u ... -p db > dump.sql |
| 突破 phpMyAdmin 2M 限制 | 命令列導入無大小限制;或拆分 SQL 檔、調大 upload_max_filesize/post_max_size |
--default-character-set=utf8mb4(或源庫字符集)。--default-character-set=utf8mb4。CREATE DATABASE db CHARSET utf8mb4;file dump.sql 確認編碼、head -20 dump.sql 檢查 SET NAMES 行。-p 互動式輸入,勿明文。"C:\My Backups\dump.sql"。> < 在 PowerShell 中行為不同,建議用 CMD 或 Git Bash。# 1. 檢查檔案大小非 0
# 2. 抽樣檢視結構
head -50 dump.sql
# 3. 定期演練恢復至測試庫
mysql -u root -p test_restore < dump.sql
# 4. 核對核心表行數
SELECT COUNT(*) FROM core_table;