zoukankan      html  css  js  c++  java
  • 解决ubuntu server mysql load data infile 导入本地文件ERROR 1148 (42000)错误。

    问题:在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 """

     
     
  • 相关阅读:
    关于网络字节序(network byte order)和主机字节序(host byte order)
    关于垃圾回收,我来解释下为什么LocalConnection可以实现垃圾回收
    解决Form中ExternalInterface的Bug问题
    AS3里var aa:String是null还是""?
    IE并发连接限制(as)
    tar
    mysql默认端口号3306
    flex经验
    这个游戏不错
    nginx介绍
  • 原文地址:https://www.cnblogs.com/chenshuo/p/4747911.html
Copyright © 2011-2022 走看看