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 """

     
     
  • 相关阅读:
    【LeetCode】Validate Binary Search Tree
    【LeetCode】Search in Rotated Sorted Array II(转)
    【LeetCode】Search in Rotated Sorted Array
    【LeetCode】Set Matrix Zeroes
    【LeetCode】Sqrt(x) (转载)
    【LeetCode】Integer to Roman
    贪心算法
    【LeetCode】Best Time to Buy and Sell Stock III
    【LeetCode】Best Time to Buy and Sell Stock II
    CentOS 6 上安装 pip、setuptools
  • 原文地址:https://www.cnblogs.com/chenshuo/p/4747911.html
Copyright © 2011-2022 走看看