Зависание _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")

Вот так уже висит. Не знаю что с этим делать, пойду домой.

Комментарии 8

LXj (lxj.endofinternet.net) № 1
А ты тут раньше pymysql упоминал. Почему пользуешься именно mysql-python, а не им?
Евгений Степанищев (bolknote.ru) автор № 2
Я его попробовал поставить. Не смог подключиться ничем, кроме рута. Когда сменил пароль рута, то и рутом не смог. Ошибка авторизации пишет (ошибка №1043).
LXj (lxj.endofinternet.net) № 5
Ну и, видимо, глупый вопрос -- другими способами (скажем, в консольном mysql-клиенте) запрос выполняется без проблем?
Евгений Степанищев (bolknote.ru) автор № 6

Комментарий для lxj.endofinternet.net:

А сколько строк в wp_4_posts

Строк — дофига, не считал

какие курсоры пробовал

только дефолтный

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

увы, да, консольный клиент выдаёт без проблем

LXj (lxj.endofinternet.net) № 7
Если строк дофига, то может быть стоит попробовать use_result вместо store_result? Ну или попробовать для начала считать не все строки, а по сотне
Евгений Степанищев (bolknote.ru) автор № 8
Комментарий для lxj.endofinternet.net:

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