解决mysql无法导入本地文件的问题

    导入本地文件可以用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
 

你可能感兴趣的:(mysql,数据库,mysqlimport)