python - 超过锁等待超时;尝试使用 python 更新 mysql 表时尝试重新启动事务'错误

标签 python mysql

我正在使用 python 调用 mysql 中的表并执行查询。我收到错误:

_mysql_exceptions.OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')

tbl_1 是一个表,我必须在其中更新 isprocessed 列。

cursor.execute('UPDATE tbl_1 SET isprocessed=1 where name='+body)
cursor.close()
cursor1 = db.cursor()
cursor1.execute('SELECT name,height,age,weight from tbl_1 where name='+body)

正文正在消息队列中获取值。如果我在没有更新查询的情况下运行代码,则其运行良好。我认为 Cursor.close 会解决问题,但事实并非如此。我还重新启动了mysql。我遇到过类似的问题,但没有一个能解决我的问题。感谢任何帮助。

我已将 innodb_lock_wait_timeout 设置为从 50 到 63000

最佳答案

由于多种原因,这是一个常见问题。

  1. 当您运行程序(或文件)时,不要在另一个终端中打开 MYSQL。这可能会导致读写冲突。
  2. 如果您使用 django 以及 MYSQL 直接执行(使用游标),请确保使用以下命令提交事务:{your_connection_object}.commit()。例如:self.conn.commit()

调试命令如下(如果您是新手,请阅读有关它们的更多信息):

INNODB 监控输出:

SHOW ENGINE INNODB STATUS\G

当前正在运行的进程:

Show processlist;

终止特定进程:

kill *process_id*;

当前正在运行的事务:

SELECT * FROM `information_schema`.`innodb_trx` ORDER BY `trx_started`;

关于python - 超过锁等待超时;尝试使用 python 更新 mysql 表时尝试重新启动事务'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22008561/

相关文章:

python - 猜谜游戏中输入多个相同的数字;循环停止工作?

python - RNCryptor 和 Python 服务器

mysql - 按顺序选择Mysql条件组的问题

mysql - MySQL中haversine查询添加bounds的效率

PHP MySQL 查询从两个不同的表中获得最受欢迎

php - 错误 : Cannot add or update a child row: a foreign key constraint fails?

python - Python 导入后自动实例化类

python - Python 中的 __future__ 用于什么以及如何/何时使用它,以及它是如何工作的

python - 配置向上和向下箭头以在 Python shell 中滚动历史记录

mysql - Apache 的 htdocs 文件夹发生了什么变化?