我的测试用格式化文件student.txt 格式是这样的:
sss|19|sss
ss|20|ss
ss|22|ss
首先,安装mysql sudo apt-get install mysql-server
1.登录mysql数据库,mysql -u root -p回车,输入密码即可。
2.create database testLoadData;
3.show databases;
4.use testLoadData;
5.create table test(name varchar(12),age varchar(4),school varchar(20));
6.select * from test;
7.load data local infile '/home/hadoop/testLoadData/student.txt' into table test fileds terminated by '|' lines terminated by '\n';
报错,ERROR 1148 (42000): The used command is not allowed with this MySQL version
因为Mysql编译安装时默认不允许执行这个命令。解决办法:
1)安装时加上 --enable-local-infile 参数就可以了执行了。 ./configure --prefix=/usr/local/mysql --enable-local-infile make make install
2.可以在执行命中加上--local-infile=1 参数即可解决[1]。 也就是说,输入exit退出mysql。重新登:
mysql -u root -p testLoadData --local-infile=1;
然后在执行第七步的LoadData.
8.select * from test;
导入成功。
PS:
关于怎么使用--local-infile=1的问题,纠结了很久。看了[2]才明白的。
[3]为mysql语句大全。不熟悉mysql还得靠它了。
参考网页:
[1] http://blog.csdn.net/karen_wang/article/details/6268769【转】关于MYSQL LOAD DATA LOCAL INFILE 支持问题
[2] http://www.jb51.net/article/33365.htm mysql load data infile 的用法(40w数据 用了3-5秒导进mysql)
[3] http://wenku.baidu.com/view/cf46bac69ec3d5bbfd0a7446.html Mysql语法语句大全