首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料庫匯出匯入實戰操作手冊

     編輯:MySQL 資料庫相關知識

mysqldump 匯出工具詳解

mysqldump 是 MySQL 官方邏輯備份工具,產出 SQL 文字檔,跨版本、跨平台相容性佳。

常用匯出指令

需求指令範例關鍵參數說明
整個資料庫 mysqldump -u root -p db_name > db_backup.sql 預設包含建表與資料
單一資料表 mysqldump -u root -p db_name table_name > table_backup.sql 指定表名即可
多個指定表 mysqldump -u root -p db_name t1 t2 t3 > tables_backup.sql 表名以空格分隔
僅匯出結構 mysqldump -u root -p -d db_name > schema_only.sql -d / --no-data
僅匯出資料 mysqldump -u root -p -t db_name > data_only.sql -t / --no-create-info
加上 DROP TABLE mysqldump -u root -p --add-drop-table db_name > with_drop.sql 匯入前自動清理舊表
壓縮輸出 mysqldump -u root -p db_name | gzip > db_backup.sql.gz 管道配合 gzip 節省空間
遠端資料庫 mysqldump -h remote_host -u root -p db_name > remote_backup.sql -h 指定主機
指定字元集 mysqldump --default-character-set=utf8mb4 -u root -p db_name > backup.sql 避免編碼錯誤

進階參數組合推薦

# 生產環境標準備份(單線程、一致性、壓縮)
mysqldump --single-transaction --routines --triggers --events \
  --default-character-set=utf8mb4 --quick --compress \
  -u backup_user -p db_name | gzip > backup_$(date +%F).sql.gz
  • --single-transaction:InnoDB 熱備份關鍵,不鎖表
  • --routines --triggers --events:包含預存程序、觸發器、事件
  • --quick:逐行讀取,避免大結果集佔記憶體
  • --compress:客戶端與伺服器傳輸壓縮

資料匯入方式

方式一:mysql 客戶端(適用 .sql 檔)

# 進入 mysql 再執行
mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8mb4;
mysql> USE db_name;
mysql> SOURCE /path/to/backup.sql;

或直接管道導入:

mysql -u root -p db_name < backup.sql
# 壓縮檔直接導入
zcat backup.sql.gz | mysql -u root -p db_name

方式二:LOAD DATA INFILE(適用 CSV/文字檔,速度極快)

LOAD DATA INFILE '/path/to/data.csv'
INTO TABLE table_name
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
  • 需 FILE 權限與 secure_file_priv 目錄配合
  • 大量資料載入比 INSERT 快 10-20 倍

方式三:mysqlimport 命令列工具

mysqlimport -u root -p --local --fields-terminated-by=',' \
  --fields-enclosed-by='"' --lines-terminated-by='\n' \
  --ignore-lines=1 db_name /path/to/table_name.csv

大資料遷移技巧

  1. 分檔匯出/匯入:大表拆分多檔,平行處理
  2. 停用索引/外鍵:匯入前 SET FOREIGN_KEY_CHECKS=0; ALTER TABLE t DISABLE KEYS;,匯入後重建
  3. 調大參數:max_allowed_packet=1G、innodb_buffer_pool_size 臨時調大
  4. 使用實體備份:Percona XtraBackup 熱備份 + 還原,TB 級資料首選

驗證與校驗

  • 資料筆數比對:SELECT COUNT(*) FROM table
  • 檢查碼比對:CHECKSUM TABLE table
  • 關鍵業務查詢抽樣驗證

建立標準化備份/還原 SOP,定期演練還原流程,才能在災難發生時從容應對。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved