我从sqlite和有趣的问题转移到mysql - 每当我通过django admin(大约100左右)批量删除对象时,我得到了这个mysql错误:
(1205, 'Lock wait timeout exceeded; try restarting transaction')
使用相同型号的sqlite从未发生这种情况。
我最多可以删除两条记录,其中三条记录失败。
设置是windows7,mysql 5.5.20,python 2.7,django 1.3
答案 0 :(得分:2)
该错误直接来自MySQL。它发生在表上创建了一个锁并且由于某种原因它没有被释放。您可以尝试重新启动MySQL服务器。这可能足以清除事情并允许您继续。您还可以编辑my.conf
文件(不确定其在Windows中的位置,但应该与其余的MySQL内容一起使用)并将以下行更改为更长的时间段(数字为秒):
innodb_lock_wait_timeout = 50
答案 1 :(得分:0)
事实证明,这个问题可能有很多原因。我的情况是由索引混合造成的 - 我只能通过重新创建数据库和导入数据来解决这个问题。
一般
show status
show engine innodb status
explain <select causing issues>
可能会给出一些提示。