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的?时间久远的?

还是没用。


有人知道怎么回事吗?

...全文
247 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2019-05-10
  • 打赏
  • 举报
回复
连接池也有问题,如果连接已经断了,池中的连接已经无效了,不会重连。 需要用steady_connection()
王桑的一天 2019-05-10
  • 打赏
  • 举报
回复
好像搞定了……好像就是程序写的不够健壮。 每个Client线程池限定为1,最大连接限定为1. 之前用的select模式轮询,现在改用gevent了,再观察观察

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧