Python MySQLDB executemany () работает на Mac, ничего не делает на Linux - PullRequest
0 голосов
/ 17 ноября 2010

Я запускаю несколько сценариев 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, но, вероятно, завершается ошибкой с измененным разделителем в определении хранимой процедуры (в любом случае сообщает об ошибке SQL вокруг строки DELIMITER).

Кто-нибудь когда-нибудь сталкивался с чем-то подобным? Кто-нибудь успешно использует executemany() в Linux?

Версия:

  • 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-универсальный

  • 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 есть дополнительная пустая строка, от которой я не могу избавиться, возможно, ошибка стека переполнения ...)

1 Ответ

0 голосов
/ 26 ноября 2010

Проверьте, правильно ли вы обновились до 1.2.3 ... Я помню, как читал, что в 1.2.2 была ошибка, которая вызывала проблемы с executemany.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...