使用MySQL我无法使用本地infile的加载数据导入文件。我的服务器在AWS RDS上。这适用于Ubuntu 10.04。我使用apt-get install mysql-client
安装了客户端。如果我在Python中使用mysqldb或mysql.connector,则会出现相同的错误。
File "/usr/lib/pymodules/python2.7/mysql/connector/protocol.py", line 479, in cmd_query
return self.handle_cmd_result(self.conn.recv())
File "/usr/lib/pymodules/python2.7/mysql/connector/connection.py", line 179, in recv_plain
errors.raise_error(buf)
File "/usr/lib/pymodules/python2.7/mysql/connector/errors.py", line 82, in raise_error
raise get_mysql_exception(errno,errmsg)
mysql.connector.errors.NotSupportedError: 1148: The used command is not allowed with this MySQL version
我要上传大量数据......我不相信12.04不受支持,我必须使用12.04。
答案 0 :(得分:3)
不是真正的python问题......但问题的长短是由Ubuntu编译和分发的mysql> 12.04,不支持直接从mysql客户端使用load data local infile
。
如果您在MySQL参考文档中搜索错误1148,请在下面链接的页面下方的注释中搜索:
Aaron Peterson于2005年11月9日下午4:35发表
使用FreeBSD端口的defalut安装,我不得不使用命令行 mysql -u user -p --local-infile menagerie 启动mysql监视器,否则LOAD DATA LOCAL命令失败,出现错误 以下内容:
错误1148(42000):此MySQL版本不允许使用命令
... 工作。
monte@oobun2:~$ mysql -h localhost -u monte -p monte --local-infile
Enter password:
...
mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
Query OK, 8 rows affected (0.04 sec)
Records: 8 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+
9 rows in set (0.00 sec)
mysql>
我通常不需要通过代码加载数据,因此足以满足我的需求。如果你这样做,并且有能力/权限来编辑你的mysql配置文件,那么相应部分中的local-infile=1
行可能会更简单。