无论是使用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