导入本地文件可以用LOAD DATA LOCAL INFILE的关键字,例如:
mysql > LOAD DATA LOCAL INFILE '/data/db.txt'
> INTO TABLE TEMP
> FIELDS TERMINATED BY ','
> ENCLOSED BY '“'
> LINES TERMINATED BY '\n'
(field1,field2,field3...);
但是有时候,会出现以下错误提示:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
意思就是说不允许这个请求。主要原因就是local-infile这个选项有没有被enable。
如果是源码安装的mysql,记得configure的时候加一条--enable-local-infile。
当然像我这种直接apt-get安装的,已经没有这个机会了(sigh。。。)。不过解决的办法还是有很多。
首先,可以在启动mysqld的时候加一个选项--local-infile=1。
其次,可以稍微麻烦点儿,在登录mysql的时候加一条选项,--local-infile, 如果是用mysqlimport来导入的话直接加一个-L或者--local的选项就OK。
最后,一本万利的方法,修改my.cnf,在client下面加一条记录:
# vi /etc/mysql/my.cnf
[client]
...
loose-local-infile =1
# /etc/init.d/mysql restart
详见官网:
http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html