經驗:使用mysqlimport快速匯入csv檔案
mysqlimport 工具實際上也只是“load data infile”命令的一個包裝實現。
常用選項:
--fields-terminated-by=字串:設定字串為欄位之間的分隔符,可以為單個或多個字元。預設值為製表符“\t”。
-L, --local:表示從客戶端任意路徑讀取檔案匯入表中,未設定該選項時,預設只從datadir下同名資料庫目錄下讀取檔案匯入
--ignore-lines=n:表示可以忽略前n行。
-l, --lock-tables:寫入時鎖定所有表
-p, --password[=name]:指定使用者密碼
-u, --user=name:指定登入MySQL使用者名稱
-h, --host=name:指定遠端連線的伺服器
-c, --columns=name:往表裡匯入指定欄位,如:--columns='Name,Age,Gender'
-C, --compress:在客戶端和伺服器之間啟用壓縮傳遞所有資訊
格式:
mysqlimport -h伺服器IP -P埠 -u使用者名稱 -p密碼 資料庫名 --fields-terminated-by=',' 資料.csv --columns='列1,列2,列3' --local
命令:
mysqlimport -h127.0.0.1 -P3306 -uroot -pX123456 app_user --fields-terminated-by=',' t1.csv --columns='a,b,c' --local
返回:
mysqlimport: [Warning] Using a password on the command line interface can be insecure.
app_user.t1: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
如:出現“3948"號錯誤則:
set global local_infile = 1;
然後:
show variables like 'local_infile';
建表:
CREATE TABLE `t1` (
`a` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`b` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`c` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
資料.csv:
a,b,c
11,22,33
44,55,66
本文來自部落格園,作者:xiaoyongdata(微訊號:xiaoyongdata),轉載請註明原文連結:https://www.cnblogs.com/xiaoyongdata/p/15676810.html