• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

程序 Lock wait timeout exceeded; mysql trx_state: RUNNING

互联网 diligentman 2周前 (01-14) 11次浏览

异常 Lock wait timeout exceeded; mysql trx_state: RUNNING

最近开发中出现了 上面的问题。mysql 事务一致在 runing 。 导致 插入 删除 更新不了,但是可以查询
搜索一般都说是 代码事务未提交。 可是代码明明已经加了 事务控制了。
但是还是 出现了 非常奇怪。

mysql 查看

查看连接的客户端:

SELECT * FROM information_schema.processlist ; 

查看事务记录:
select * from information_schema.INNODB_TRX;

排查是哪里导致的问题

首先通过 select * from information_schema.processlist where id = [trx_mysql_thread_id]
查询到的IP 并不是开发云服务器环境的IP, 看起来也不是 开发人员本地的IP啊。
而且通过 百度 IP 看本机的IP也不对啊。 奇怪了,不会是服务器 那边出什么问题了。

重新并找出对应的IP

begin;
SELECT * xxx ;
不要提交事务

select * from information_schema.INNODB_TRX; 
就可以看到 有事务在RUNING了 。 看看IP , 就知道当前自己的电脑的客户端IP是多少了。
居然和 百度IP的不一样。 通过IP对比发现是 同一个网段的,就可以找到是哪位同事 执行 出现的。

产生原因

原来 是某个同事,在DEBUG 代码的时候, 打了断点,但是没有执行完,直接关了IDEA 或者关了 执行。
网络环境也不会,所以出现了这个问题。 导致云mysql 感知不到 客户端断开了,事务没有提交和回滚。出现了这个问题
这种问题不是死锁

参考

https://blog.csdn.net/axingm/article/details/108372387
参考
参考
参考
参考

{{o.name}}


{{m.name}}


喜欢 (0)