mysql 1205 ошибка массового удаления в админке django - PullRequest
0 голосов
/ 11 февраля 2012

Я перешел на mysql из sqlite и забавная проблема - всякий раз, когда я массово удаляю объекты через администратора django (около 100 или около того), я получаю эту ошибку mysql:

(1205, 'Lock wait timeout exceeded; try restarting transaction')

, такого никогда не случалосьsqlite с теми же моделями.

Я могу удалить максимум две записи, три сбоев.

Настройка: windows7, mysql 5.5.20, python 2.7, django 1.3

Ответы [ 2 ]

2 голосов
/ 11 февраля 2012

Эта ошибка напрямую из MySQL. Это происходит, когда на столе создана блокировка, и она по какой-либо причине не снята. Вы можете попробовать перезагрузить ваш сервер MySQL. Этого может быть достаточно, чтобы прояснить ситуацию и позволить вам продолжить. Вы также можете отредактировать файл my.conf (не уверенный в его местонахождении в Windows, но он должен быть с остальными компонентами MySQL) и изменить следующую строку на более длинный период времени (число в секундах):

innodb_lock_wait_timeout = 50
0 голосов
/ 16 февраля 2012

Оказывается, может быть много причин этой проблемы.Мой случай был вызван каким-то смешением индексов - я смог исправить это только путем воссоздания базы данных и импорта данных.

в общем

show status
show engine innodb status
explain <select causing issues>

может дать некоторые подсказки.

...