不是真正的python问题......但问题的长短是由Ubuntu> 12.04编译和分发的mysql不支持load data local infile
直接从mysql客户端使用。
如果您在 MySQL 参考文档中搜索错误 1148,请在上面链接的页面下方的评论中:
Aaron Peterson 于 2005 年 11 月 9 日下午 4:35 发布
使用 FreeBSD 端口的默认安装,我必须使用命令行 mysql -u user -p --local-infile menagerie 来启动 mysql 监视器,否则 LOAD DATA LOCAL 命令失败并出现如下错误:
ERROR 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
相应部分中的行可能会更简单。