您的位置:首页 > 数据库 > MySQL

解决ubuntu server mysql load data infile 导入本地文件ERROR 1148 (42000)错误。

2015-08-21 15:01 851 查看
问题:在ubuntu server 上使用apt-get 安装完 mysql 使用 load data infile 出现错误,错误代码如下:

ERROR 1148 (42000): The used command is not allowed with this MySQL version


这是由于ubuntu server 下 mysql 默认不允许使用 load data infile命令。

解决办法:

1.安装时加上 --enable-local-infile 参数就可以了执行了。
这种方式显然只适合刚开始安装mysql 的时候。

2.可以在执行命中加上--local-infile=1 参数即可解决。
如:mysql -u root -p databaseName --local-infile=1 -e "LOAD DATA LOCAL INFILE 'data.txt' into table test(name,sex) ";

注意:实际导入过程中需要给导入的文件设置编码,导入的表设置字段等参数,由于单双引号的相互包含会出很多问题,本人在此就遇到了很多问题。比如红字部分,单引号包含一个双引号,大致意思就是忽略掉文件中的双引号。但是由于外层里层单引号嵌套会使得导入的数据有问题。所以将单引号替换为双引号,并将双引号转义。
有问题的导入命令:

mysql -u root -p wxsearch --local-infile=1 -e 'LOAD DATA LOCAL INFILE "/tmp/cxr-data-004.csv" INTO TABLE mpdata character set "utf8" fields terminated by "," enclosed by '"' (`name`, `cateid`, `appID`, `type`, `description`, `keyword`, `logo`, `qrcode`)';


正确的导入命令:

mysql -u root -p wxsearch --local-infile=1 -e 'LOAD DATA LOCAL INFILE "/tmp/cxr-data-004.csv" INTO TABLE mpdata character set "utf8" fields terminated by "," enclosed by "\"" (`name`, `cateid`, `appID`, `type`, `description`, `keyword`, `logo`, `qrcode`)';


主要是将 enclosed by '"' 替换为 enclosed by "\""
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: