今天在导入测试服务器导入txt数据的时候,提示报错:ERROR 1148 (42000): The used command is not allowed with this MySQL version
我的系统是ubuntu系统,安装mysql使用的是apt-get install方式安装的,之所以出现这个报错是在安装的时候没有指定enable-local-infile,所以无法在mysql命令行下导入。具体解决方法可以重新编译安装或者使用如下方法导入:
在mysql命令行下,查看表信息:
mysql> describe ct;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| chengshi | varchar(20) | YES | | NULL | |
| gongzi | int(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
退出mysql命令行界面,查看我们的txt文件
root@addam-python:~# cat xinxi.txt
zhangsan 20 beijing 3000
lisi 31 shanghai 4000
huhansan 28 beijng 10000
baishe 33 chongqing 5000
fahai 60 leifengta 100
这里要注意中间使用tab分割,如果有空值,请使用\N代替
下面在shell中使用如下命令导入数据
root@addam-python:~# mysql -uroot -p test --local-infile=1 -e 'load data local infile "/root/xinxi.txt" into table ct(name,age,chengshi,gongzi)'
说明:mysql -uroot -p这就不用说了吧
-p 制定我们的表所在库
--local-infile=1使用local-infile模块
load data local infile "/root/xinxi.txt"从/root的xinxi.txt中导入数据
into table ct(name,age,chengshi,gongzi)导入到ct表中
现在我们再进入mysql命令行查看我们的表,是否内容已经导入
mysql> select * from ct;
+----------+------+-----------+--------+
| name | age | chengshi | gongzi |
+----------+------+-----------+--------+
| zhangsan | 20 | beijing | 3000 |
| lisi | 31 | shanghai | 4000 |
| huhansan | 28 | beijng | 10000 |
| baishe | 33 | chongqing | 5000 |
| fahai | 60 | leifengta | 100 |
+----------+------+-----------+--------+
5 rows in set (0.00 sec)
好吧,现在我们看到txt的数据已经按着我们所希望的导入到指定表中。