今天在导入测试服务器导入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的数据已经按着我们所希望的导入到指定表中。