Lock wait timeout exceeded; try restarting transaction

管理員 2019-05-09 10:09:07
MySQL 更新数据时总是报这个错误。

用的数据库连接池,多个主机(5-6台)并发更新数据。数据量比较大,2000多万。

前两天还好好的,今天update突然开始报这个错误。

网上查了一 圈,说是什么事务lock,我也没用事务呀。

重启数据库没有,按照网上的说明,show processlist; kill了一些时间久远的进程ID;

select * from information_schema.innodb_trx; 查看是不是要kill RUNNING的?时间久远的?

还是没用。


有人知道怎么回事吗?

...全文
197 点赞 收藏 2
写回复
2 条回复
管理員 2019年05月10日
连接池也有问题,如果连接已经断了,池中的连接已经无效了,不会重连。 需要用steady_connection()
回复 点赞
管理員 2019年05月10日
好像搞定了……好像就是程序写的不够健壮。 每个Client线程池限定为1,最大连接限定为1. 之前用的select模式轮询,现在改用gevent了,再观察观察
回复 点赞
发动态
发帖子
MySQL
创建于2007-09-28

2.4w+

社区成员

5.5w+

社区内容

MySQL相关内容讨论专区
社区公告
暂无公告