我对 Django 还是有点陌生,当我尝试通过管理界面更新我的模型时,我得到了(1205,“超出锁定等待超时;尝试重新启动事务”)。今天早些时候,它正在运行,我一直在将更改回滚到最后一个运行版本,以试图缩小似乎是问题的范围。
问题似乎是更新失败和超时。只需通过管理界面编辑并点击保存即可触发此问题。我已经禁用了我设置的任何信号处理(后/预保存),但我认为只是在点击保存更改后的更新调用触发了这个问题。
我已经调查过了,可以在点击此链接后终止进程: Getting "Lock wait timeout exceeded; try restarting transaction" even though I'm not using a transaction
但这并没有解决问题。我可以在进程运行时终止它,但它是唯一正在运行的查询,甚至不是一个大查询。
该模型只有 7 个字段,描述了我正在编目的 VPN 服务器。显示过程列表给了我这个:
updating | UPDATE
openvpn_client
SETname
= 'rsa_test1',local_ip
= '2.2.2.2',vpn_ip
= NULL,type
=
结尾在表格中被截断了,但我假设它还有其余部分。
我认为这是一个大小问题,但到目前为止,我的“客户”表中只有 4 个条目,而且它们都没有存储任何类型的大数据。
到目前为止,我认为这是一个 mySQL 问题,而不是 Django 问题,并且有一半的想法要重新开始一个新的数据库。
我不打算增加超时值,因为它过去常常在不到一秒的时间内运行以更新这些字段,所以不太确定从那以后发生了什么变化。
最佳答案
事实证明,post_save 信号有错误代码阻塞(未完成的 Celery 任务)。印象中是完成后才收到信号,但似乎不是这样。
关于mysql - 保存/更新模型时 Django "Lock wait timeout exceeded; try restarting transaction",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45827528/