mysqlimport 位於 MySQL 的 bin 目錄下,是 MySQL 官方提供的一款高效命令行數據導入工具。它能將文本文件的數據導入到指定的數據庫表中,支持豐富的參數和選項,是批量數據載入的首選工具。
基本語法結構:
mysqlimport [選項] 數據庫名 文本文件名
工具會自動將導入文件的第一個句點(.)之前的字符串作為目標表名。例如:
mysqlimport Meet_A_Geek Customers.txt → 導入到 Customers 表mysqlimport Meet_A_Geek 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 |
顯示版本信息 |
-p |
提示輸入密碼,增強安全性 |
"1", "ORD89876", "1 Dozen Roses", "19991226"
bin/mysqlimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
bin/mysqlimport:指定執行程序路徑-p:要求輸入密碼,提升操作安全性-r:採用替換模式處理唯一鍵衝突-l:導入期間鎖表,保證數據一致性--fields-enclosed-by=":字段以雙引號包裹--fields-terminated-by=,:字段間以逗號分隔Meet_A_Geek:目標數據庫Orders.txt:源文件(對應 Orders 表)提示:熟悉選項後,mysqlimport 是自動化數據遷移、ETL 流程的強大助手。建議在生產環境使用前,先在測試環境驗證數據格式與選項組合。