mysql load 从文件读入数据提示ERROR 1148

创建数据表
<span style="font-size:18px;">CREATE TABLE weblogs(
            md5  varchar(32),
            url varchar(64),
            request_date date,
            request_time time,
            ip varchar(15))
</span>

我的版本是:Server version: 5.5.38-0ubuntu0.12.04.1-log (Ubuntu)


在使用如下命令导入时会报错:

<span style="font-size:18px;">mysql> LOAD  DATA LOCAL INFILE '/home/hadoop/weblog_entries.txt' INTO table weblogs FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 1148 (42000): The used command is not allowed with this MySQL version
</span>


提示这个版本的mysql不支持这样导入


解决办法:http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html

<span style="font-size:18px;">hadoop@caozw:~$ mysql -uroot<span style="background-color: rgb(255, 0, 0);"> --local-infile=1</span>  -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.5.38-0ubuntu0.12.04.1-log (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use realworld;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> <span style="color:#FF0000;">LOAD  DATA LOCAL INFILE '/home/hadoop/weblog_entries.txt' INTO table weblogs FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'</span>;
Query OK, 3000 rows affected (1.17 sec)
Records: 3000  Deleted: 0  Skipped: 0  Warnings: 0
</span>

在连接mysql的时候加上--local-infile的参数 然后导入即可


或者使用如下方式:



<span style="font-size:18px;">mysql -u [youruser] -h [youraddress] -p [yourpassword] [yourdatabase] --local-infile=1 -e "[yourcmd]" </span>


<span style="font-size:18px;">mysql -uroot -p123456 realworld --local-infile=1 -e "LOAD DATA local INFILE '/home/hadoop/weblog_entries.txt' INTO table weblogs FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'"</span>

原因分析:根据官方的解释是mysql在编译的时候默认把local-infile的参数设为0,就是关闭了从本地load的功能,所以如果需要使用只能自己打开 通过链接的时候把该参数设置为1的方式



另外windows下面的换行符和linux的是不一样的

windows换行是\r\n,十六进制数值是:0D0A。
LINUX换行是\n,十六进制数值是:0A

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。