Зависание _mysql (mysqldb)

Мучался-мучался, на выборке висит модуль _mysql (это биндинг mysqldb к MySQL у Python). Совершенно случайно заметил, что нигде не указываю кодировку, указал — виснуть перестало.

Судя по strace, модуль чего-то ждёт из сокета, ощущение такое, что просто неверно подсчитывается длина контента — если не указать кодировку, данных ожидается больше, чем приходит. Мда.

Добавлено чуть позже: да что ж такое! Опять висит. И с указанием кодировки — тоже. В интернете ничего нет, что же я не так делаю?

Через _mysql — висит, через MySQLdb — тоже, через execute — висит, через курсор — тоже. Что ж это такое-то?

Добавлено ещё позже: вот весь код:
import MySQLdb as mysql

db = mysql.connect(\
    host = 'localhost',
    user = 'log',
    passwd = 'xxx',
    db = 'log',
    use_unicode = True,
    charset='utf8'
)

c  = db.cursor()
c.execute("SELECT * FROM wp_4_posts")
Вот так уже висит. Не знаю что с этим делать, пойду домой.
16 марта 2010 21:01

LXj (lxj.endofinternet.net)
16 марта 2010, 21:54

А ты тут раньше pymysql упоминал. Почему пользуешься именно mysql-python, а не им?

bolk (bolknote.ru)
16 марта 2010, 22:02, ответ предназначен LXj (lxj.endofinternet.net):

Я его попробовал поставить. Не смог подключиться ничем, кроме рута. Когда сменил пароль рута, то и рутом не смог. Ошибка авторизации пишет (ошибка №1043).

LXj (lxj.endofinternet.net)
16 марта 2010, 22:37

А сколько строк в wp_4_posts и какой курсор используется?

LXj (lxj.endofinternet.net)
16 марта 2010, 22:38

*какие курсоры пробовал, очевидно

LXj (lxj.endofinternet.net)
16 марта 2010, 22:50

Ну и, видимо, глупый вопрос -- другими способами (скажем, в консольном mysql-клиенте) запрос выполняется без проблем?

bolk (bolknote.ru)
16 марта 2010, 23:34, ответ предназначен LXj (lxj.endofinternet.net):

А сколько строк в wp_4_posts
Строк — дофига, не считал
какие курсоры пробовал
только дефолтный
другими способами (скажем, в консольном mysql-клиенте) запрос выполняется без проблем?
увы, да, консольный клиент выдаёт без проблем

LXj (lxj.endofinternet.net)
17 марта 2010, 16:25

Если строк дофига, то может быть стоит попробовать use_result вместо store_result? Ну или попробовать для начала считать не все строки, а по сотне

bolk (bolknote.ru)
18 марта 2010, 15:01, ответ предназначен LXj (lxj.endofinternet.net):

Ох, оказалось, что после перезагрузки всё нормализировалось. Я как-то не ожидал такого.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)