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

MySQL 匯入匯出命令大全:mysqldump、SELECT INTO OUTFILE、LOAD DATA INFILE 完整參數解析

     編輯:MySQL 資料庫相關知識

一、mysqldump:邏輯備份標準工具

三種調用模式

# 1. 單庫/指定表
mysqldump [options] db_name [table1 table2 ...]

# 2. 多庫(輸出含 CREATE DATABASE)
mysqldump [options] --databases db1 [db2 db3 ...]

# 3. 全庫(含系統庫)
mysqldump [options] --all-databases

常用實戰範例

需求命令範例關鍵參數說明
備份單庫結構+資料mysqldump -uroot -p mysql > mysql_backup.sql不含 CREATE DATABASE
備份多庫含建庫語句mysqldump -uroot -p --databases mysql test > multi.sql--databases
備份所有資料庫mysqldump -uroot -p --all-databases > all.sql--all-databases
僅導出結構mysqldump -uroot -p -d --add-drop-table mysql > schema.sql-d no-data, --add-drop-table
導出並即時壓縮mysqldump -uroot -p mysql | gzip > mysql.sql.gz管線串流壓縮
大表優化導出mysqldump -uroot -p --quick --single-transaction db > dump.sql--quick 串流, --single-transaction 一致性

還原方式

# 方式 1:重導向
mysql db_name < backup.sql

# 方式 2:source 指令(需先進入 mysql client)
mysql -e "SOURCE /path/backup.sql" db_name

# 從 gz 壓縮檔還原
gunzip -c mysql.sql.gz | mysql -uroot -p db_name

二、SELECT ... INTO OUTFILE:資料導出至文字檔

特點:僅導出資料,不含結構;檔案生成於伺服器端;需 FILE 權限。

SELECT * 
INTO OUTFILE '/tmp/result.txt' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM mysql.user;
  • FIELDS TERMINATED BY ',':欄位分隔符
  • OPTIONALLY ENCLOSED BY '"'":字串欄位雙引號包裹(數值型不受影響)
  • LINES TERMINATED BY '\n'":換行符

三、LOAD DATA INFILE:高速載入文字檔

SELECT INTO OUTFILE 的逆操作,支援相同格式參數。

LOAD DATA LOCAL INFILE '/tmp/result.txt' 
INTO TABLE test.user 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n';
  • LOCAL:檔案在客戶端,透過網路傳輸給 Server(需客戶端/服務端皆啟用 local_infile=1)。
  • 無 LOCAL:檔案必須在 Server 端,速度更快但需 FILE 權限。

四、格式參數對照表

參數範例值說明
FIELDS TERMINATED BY','、'\t'、'|'欄位分隔符,CSV 常用逗號,TSV 用 Tab
OPTIONALLY ENCLOSED BY'"'"、''''字串包裹字元,含分隔符時必須
ESCAPED BY'\\'跳脫字元,預設反斜線
LINES TERMINATED BY'\n'、'\r\n'行結束符,跨平台注意
LINES STARTING BY''行前綴(較少用)

五、進階技巧與避坑指南

  1. 大量資料匯入加速: 匯入前 SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0; SET AUTOCOMMIT=0;,匯入後恢復並 COMMIT;。
  2. 字符集一致性: 導出/導入雙端確認 --default-character-set=utf8mb4,避免亂碼。
  3. 安全模式限制: secure_file_priv 限制 INTO OUTFILE 目錄,查詢 SHOW VARIABLES LIKE 'secure_file_priv'; 確認可寫路徑。
  4. 並行匯入: 將大檔切分為多個 chunk,搭配 myloader 多執行緒載入。

選型建議: 邏輯備份/跨版本遷移/異構同步 → mysqldump;同版本大量資料高速搬遷 → SELECT INTO OUTFILE + LOAD DATA INFILE(配合 myloader 並行);物理備份/極速恢複 → Percona XtraBackup。

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