Впервые за последние 3 года взял в руки MySQL и крайне озадачен.
Использую MySQLdb 1.2.3, MySQL 5.5.10
Если что-то дохнет на стадии последней строчки, например, мы получаем залоченную таблицу и DROP TABLE в состоянии "Waiting for table metadata lock". Лок висит намертво, приходится руками kill процессу делать через mysql консоль.
Притом, та же фигня происходит и с ENGINE=MyISAM и с ENGINE=InnoDB.
Не исключено, что я просто не умею её готовить, но раньше таких проблем я не припоминаю, например.
Подскажите, пожалуйста, куда рыть, блин?
UPD: Задаунгрейдил мускуль до 5.1.55, всё прекрасно заработало. Так и не понял, в чём проблема была, но похоже связку драйвер-база колбасило.
Использую MySQLdb 1.2.3, MySQL 5.5.10
class DB(object):
...
def execute(self, sql, val=None):
cursor = self._conn.cursor()
cursor.execute(sql, val)
print cursor._executed
if not cursor.rowcount: return None
return cursor
...
class Sql(object):
...
def fetch(self, db):
cursor = db.execute(self.query, tuple(self.vals,))
if not cursor:
return None
raw_rows = cursor.fetchall()
cursor.close()
return raw_rows
...
rows = sql.fetch(db)
print dict((row.id, row.login) for row in rows)
Если что-то дохнет на стадии последней строчки, например, мы получаем залоченную таблицу и DROP TABLE в состоянии "Waiting for table metadata lock". Лок висит намертво, приходится руками kill процессу делать через mysql консоль.
Притом, та же фигня происходит и с ENGINE=MyISAM и с ENGINE=InnoDB.
Не исключено, что я просто не умею её готовить, но раньше таких проблем я не припоминаю, например.
Подскажите, пожалуйста, куда рыть, блин?
UPD: Задаунгрейдил мускуль до 5.1.55, всё прекрасно заработало. Так и не понял, в чём проблема была, но похоже связку драйвер-база колбасило.
