Python MySQLDBexecutemany()在mac上工作,在linux上不执行任何操作

标签 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 Distrib 5.1.39,适用于 apple-darwin9.5.0 (i386),使用 readline 5.1
  • MySQL_python-1.2.3-py2.6-macosx-10.6-universal

  • Kubuntu 10.10

  • mysql Ver 14.14 Distrib 5.1.49,适用于 debian-linux-gnu (i686),使用 readline 6.1
  • MySQL_python-1.2.3-py2.6-linux-i686 (默认的Kubuntu包是1.2.2,所以我手动升级)

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

最佳答案

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

关于Python MySQLDBexecutemany()在mac上工作,在linux上不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200691/

相关文章:

javascript - 初学者 javascript - 显示有限数量的查询并在底部添加加载

c++ - 在 C++ 中执行两个阻塞 IO 调用的更轻量级方法

跨多列的mysql关键字搜索

linux - `make release_tests` 在全新 Erlang 安装中进行 ./configure 后失败

Linux 不同的发行版命令

python - 如何在传递一些函数后返回 'for loop' 中的相同数据帧,而不附加等?

python - @classmethod 的位置

Python Tkinter 多处理进展

python - Django 用户经过身份验证(未经过身份验证)

java - 使用 JAX-RS、mysql、JSON、Jersey、Tomcat 的简单 REST CRUD Web 服务