gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:38:01 26 4
gpt4 key购买 nike

我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com