首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 資料匯入匯出三大方式:source 命令、mysqldump 管道、phpMyAdmin 圖形化操作

     編輯:MySQL 綜合教學

MySQL 資料匯入匯出實戰三部曲

覆蓋命令列 source、mysqldump 管道串流、圖形化 phpMyAdmin 三種主流方式,滿足不同場景需求。

方式一:mysql 客戶端 source 命令 (適合 .sql 檔案匯入)

# 1. 進入 mysql 互動模式
mysql -u root -p

# 2. 若檔案含 CREATE DATABASE,直接匯入
mysql> SOURCE /path/to/dump.sql;

# 3. 若檔案無 CREATE DATABASE,先建庫/切庫
mysql> CREATE DATABASE target_db;
mysql> USE target_db;
mysql> SOURCE /path/to/dump.sql;

關鍵細節:

  • 路徑分隔符**統一使用正斜線 `/`** (Windows 下也適用),避免反斜線轉義問題。
  • 大檔案建議先 SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; 再 SOURCE,最後 COMMIT;。
  • 編碼一致性:確保連線字元集 (SET NAMES utf8mb4) 與匯出檔案編碼一致。

方式二:mysqldump + mysql 管道串流 (無中間檔案、跨實例同步首選)

# 本地庫間同步
mysqldump -u root -p --single-transaction --routines --triggers --events \
  --master-data=2 --hex-blob --default-character-set=utf8mb4 src_db \
| mysql -u root -p dst_db

# 遠端同步 (生產 → 測試/開發)
mysqldump -h prod_host -u root -p --single-transaction --routines --triggers --events \
  --master-data=2 --hex-blob --default-character-set=utf8mb4 --compress src_db \
| mysql -h test_host -u root -p dst_db

優勢:無磁碟 I/O 瓶頸、即時同步、可配合 pv 顯示進度、支援壓縮傳輸 (--compress / gzip 管道)。

方式三:phpMyAdmin 圖形化操作 (適合中小表、非技術人員、一次性匯出)

  1. 匯出:選資料庫/表 → Export 標籤 → 選 Quick 或 Custom (勾選 routines/triggers/events、輸出壓縮 gzip) → Go 下載 .sql.gz。
  2. 匯入:選目標資料庫 → Import 標籤 → 選檔案 → 字元集選 utf8mb4 → Go。

限制:受限於 PHP upload_max_filesize、post_max_size、max_execution_time,大檔案 (>50MB) 易超時/失敗,請改用命令列。

編碼亂碼排查清單

  1. 匯出端:--default-character-set=utf8mb4 (mysqldump) / phpMyAdmin 選 utf8mb4。
  2. 匯入端:連線執行 SET NAMES utf8mb4 或配置 default-character-set=utf8mb4。
  3. 檔案實際編碼:用編輯器 (VS Code/Notepad++) 確認檔案為 UTF-8 無 BOM。
  4. 資料庫/表/欄位字元集:SHOW CREATE TABLE 檢查 CHARSET=utf8mb4。

場景選型建議

場景推薦方式理由
單表/小庫 (<100MB) 單次匯入phpMyAdmin / SOURCE操作直觀、無需記憶參數
整庫遷移、跨環境同步、大數據量mysqldump 管道效能最佳、可斷點續傳(配合 pv)、支援壓縮
定時備份自動化腳本mysqldump 輸出檔案 + 壓縮 + 上傳對象存儲易整合調度系統、留存審計軌跡
編碼遷移 (latin1 → utf8mb4)mysqldump --default-character-set=latin1 導出 → 圖形化轉碼工具 → utf8mb4 匯入需中間轉碼步驟,避免雙重編碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved