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

MySQL 數據導入利器 mysqlimport 詳細使用指南與參數詳解

     編輯:MySQL 資料庫相關知識

工具簡介

mysqlimport 位於 MySQL/bin 目錄,是 MySQL 官方提供的高效文本數據導入工具,底層封裝 LOAD DATA INFILE。適合批量導入 CSV、TSV 等結構化文本文件。

基本語法

mysqlimport [options] database_name textfile1 [textfile2 ...]
  • database_name:目標數據庫
  • textfile:文件名(不含路徑)即為表名,第一個點號前的部分作為表名
    例:Customers.txt → 導入 Customers 表
    Cus.to.mers.txt → 導入 Cus 表
  • 文件內容格式必須與目標表列結構完全一致

核心參數詳解

短參數長參數功能
-d--delete導入前清空目標表所有數據
-f--force遇錯繼續,不中斷導入
-i--ignore跳過唯一鍵衝突行(保留舊數據)
-l--lock-tables導入前鎖表,防止併發讀寫干擾
-r--replace唯一鍵衝突時用新數據覆蓋舊行(與 -i 互斥)
--fields-enclosed-by=char字段包裹字符(如雙引號 \"),默認無
--fields-terminated-by=char字段分隔符,默認 Tab (\t)
--lines-terminated-by=str行分隔符,默認換行符 (\n)
-v--verbose顯示詳細進度信息
-p--password[=pwd]提示/指定密碼

實戰示例:導入 CSV 文件

文件 Orders.txt 內容(雙引號包裹、逗號分隔、換行結尾):

"1", "ORD89876", "1 Dozen Roses", "19991226"
"2", "ORD89877", "2 Dozen Tulips", "19991227"

導入命令:

mysqlimport --password --replace --lock-tables \
  --fields-enclosed-by="\"" \
  --fields-terminated-by=, \
  --lines-terminated-by="\r\n" \
  Meet_A_Geek Orders.txt
  • -p:交互式輸入密碼,更安全
  • -r:主鍵衝突時替換(訂單修正場景)
  • -l:導入期間鎖表,保證一致性
  • 分隔符參數需按實際文件格式調整

常見問題與技巧

  1. 字符集不匹配:MySQL 4.1+ 需添加 --default-character-set=gbk(或 utf8)
  2. 大文件優化:配合 --local 客戶端本地讀取,減少網絡傳輸
  3. 自動增量主鍵:文件中不含主鍵列,表定義 AUTO_INCREMENT 即可自動填充
  4. 日期格式:MySQL 接受 YYYY-MM-DD、YYYYMMDD,建議統一標準格式
  5. NULL 值:文件中用 \N 表示 NULL

對比:mysqlimport vs LOAD DATA INFILE

特性mysqlimportLOAD DATA INFILE
調用方式命令行工具SQL 語句
腳本化批量極易(Shell/Python 循環)需動態拼接 SQL
遠程導入支持 --local需 LOCAL 關鍵字 + 客戶端支持
錯誤處理-f 強制繼續需應用層捕獲異常

總結

mysqlimport 是 DBA/運維批量導入文本數據的首選工具,掌握其核心參數可大幅提升導入效率與可靠性。生產環境建議先在測試庫驗證參數組合,確認無誤後再執行正式導入。

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