Python MySQLDB executemany()在mac上工作,在linux上什么也不做
我以这种方式运行了许多SQL脚本:Python MySQLDB executemany()在mac上工作,在linux上什么也不做,python,mysql,linux,macos,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上就像一个魔咒,但在Linu
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语句,但在存储过程定义中更改的分隔符上可能会失败(无论如何都会在分隔符行周围报告SQL错误)
以前有没有人遇到过类似的事情?
是否有人在Linux上成功使用了executemany()
版本:
- Mac OS X 10.6.4
- mysql版本14.14发行版5.1.39,适用于apple-darwin9.5.0(i386),使用readline 5.1
- MySQL_python-1.2.3-py2.6-macosx-10.6-universal
- 库本图10.10
- mysql版本14.14发行版5.1.49,适用于使用readline 6.1的debian linux gnu(i686)
- MySQL_python-1.2.3-py2.6-linux-i686 (默认的Kubuntu包是1.2.2,所以我手动升级)
(由于某些原因,Kubuntu 10.10之后有一个额外的空行我似乎无法摆脱,可能是堆栈溢出错误…检查您是否正确升级到1.2.3。。。我记得读到过,1.2.2有一个bug导致了executemany出现问题。我使用
executemany()
,但使用的是一条应用于许多值的SQL语句(如INSERT
)。我不知道您的script\u文本中有什么变量。我一直在linux系统上使用1.2.2,没有任何问题。在linux系统上使用1.2.2上的executemany
一点问题都没有。一直在使用它。@danosure:使用executemany尝试使用一些mysql函数插入…->