Python MySQLDB executemany()在mac上运行,在linux上什么都不做

时间:2010-11-17 01:21:50

标签: python mysql linux macos

我以这种方式运行了许多SQL脚本:

db_conn = (created earlier)
cursor  = db_conn.cursor()

script_file = open(join(script_path, script_name))
script_text = script_file.read()
script_file.close()

num_rows = cursor.executemany(script_text, None)

这在我的Mac上就像一个魅力,但在Linux上失败,executemany(...)根本不做任何事情并返回None。连接设置很好:它们在两个系统上都是相同的,我可以手动执行SQL脚本,即使用mysql命令行客户端。此外,MySQLDB.execute(...)适用于较短的SQL语句,但随后可能会在存储过程定义中更改的分隔符上失败(无论如何报告DELIMITER行周围的SQL错误)。

以前有没有人遇到类似的东西? 是否有人在Linux上成功使用executemany()

版本:

  • Mac OS X 10.6.4
  • mysql Ver 14.14使用readline 5.1为apple-darwin9.5.0(i386)分发5.1.39
  • MySQL_python-1,2,3- py2.6-MacOSX的-10.6的通用

  • Kubuntu 10.10

  • mysql Ver 14.14 Distrib 5.1.49,for readian 6.1 for debian-linux-gnu(i686)
  • MySQL_python-1,2,3- py2.6-Linux的i686的 (默认的Kubuntu包是1.2.2,所以我手动升级)

(出于某种原因,在Kubuntu 10.10之后还有一个额外的空行我似乎无法摆脱,可能是一个stackoverflow错误...)

1 个答案:

答案 0 :(得分:0)

检查你是否正确升级到1.2.3 ......我记得读过1.2.2有一个导致executemany问题的错误。