mysql - 保存/更新模型时 Django "Lock wait timeout exceeded; try restarting transaction"

标签 mysql django django-models django-admin

我对 Django 还是有点陌生​​,当我尝试通过管理界面更新我的模型时,我得到了(1205,“超出锁定等待超时;尝试重新启动事务”)。今天早些时候,它正在运行,我一直在将更改回滚到最后一个运行版本,以试图缩小似乎是问题的范围。

问题似乎是更新失败和超时。只需通过管理界面编辑并点击保存即可触发此问题。我已经禁用了我设置的任何信号处理(后/预保存),但我认为只是在点击保存更改后的更新调用触发了这个问题。

我已经调查过了,可以在点击此链接后终止进程: Getting "Lock wait timeout exceeded; try restarting transaction" even though I'm not using a transaction

但这并没有解决问题。我可以在进程运行时终止它,但它是唯一正在运行的查询,甚至不是一个大查询。

该模型只有 7 个字段,描述了我正在编目的 VPN 服务器。显示过程列表给了我这个:

updating | UPDATE openvpn_client SET name = '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/

相关文章:

python - send_email 在 django 中不起作用?

Django元权限

Django Rest Framework 使 OnetoOne 关系感觉像是一个模型

python - 允许 Django 管理表单中的外键字段

php - 不要在 Mysql 中添加完全相同的 3 列值

mysql - 仅针对 "limit and offset"在 MySQL 中分组

mysql - 创建表时出错(#1064 - 你的 sql 语法有错误)

python - 处理 url 参数类型的好方法是什么?

php - 如何从我的存储过程中获取第二个 SELECT?

Django线程注释和投票