無論是使用Workbench仍是命令行來加載本地數據,均可以先使用Workbench進行數據庫、表的建立工做。html
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ] [IGNORE number LINES] [(col_name_or_user_var,...)] [SET col_name = expr,...)]
load data infile語句從一個文本文件中以很高的速度讀入一個表中。使用這個命令以前,mysqld進程(服務)必須已經在運行。因爲安全緣由,當讀取位於服務器上的文件時,文件必須處於數據庫目錄或可被全部人讀取。另外,爲了對服務器上文件使用load data infile,在服務器主機上必須有file的權限。mysql
load data low_priority infile "/home/mark/data sql" into table Orders;
load data low_priority infile "/home/mark/data sql" replace into table Orders;
運行以下代碼:sql
mysql> LOAD DATA LOCAL INFILE 'D:/XXX.csv' INTO TABLE database.tablename FIELDS TERMINATED BY ',';
出現以下錯誤:數據庫
ERROR 1148 (42000): The used command is not allowed with this MySQL version
緣由是服務器端,local_infile默認開啓;客戶端,local_infile默認關閉,所以用的時候須要打開。windows
查看local_infile變量的狀態:安全
mysql> show global variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+
顯示爲關閉狀態,使用以下命令打開:服務器
mysql> set global local_infile = 'ON';
並再次查看:ui
mysql> show global variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+
而後再進行導入工做:this
mysql> LOAD DATA LOCAL INFILE 'D:/XXX.csv' INTO TABLE database.tablename FIELDS TERMINATED BY ',';
仍然報一樣的錯誤:spa
ERROR 1148 (42000): The used command is not allowed with this MySQL version
退出mysql,用以下命令進行登錄:
$ mysql --local-infile=1 -u root -p
而後就可以正常進行正常加載了:
mysql> load data local infile 'E:/Documents/user_utf.csv' into table data.user fields terminated by ','; Query OK, 101535 rows affected, 65535 warnings (1.08 sec) Records: 101535 Deleted: 0 Skipped: 0 Warnings: 69457