程序 Lock wait timeout exceeded; mysql trx_state: RUNNING
异常 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
参考
参考
参考
参考
0条评论