您的位置:首页 > 数据库 > MySQL

[MySQL] 生产环境MySQL数据库事务一直在RUNNING

2016-06-22 18:19 585 查看
主要是参考其他的博客。但是很有用。确实解决了我们之前遇到的一个问题。

不过场景不太一样。当时我们系统的代码大致如下:

start transaction;
try{
if(i == 0) return;

doSomething;
commit;
}catch(Exception e){
rollback()
}在特殊情况下,语句进入到if,出现事务running异常。
一直无法定位到问题,显示应用级别是系统运行大概两天就会高连接数挂掉。

大概解决思路如下:

1,使用如下语句查看事务

SELECT * FROM information_schema.INNODB_TRX\G; 发现一条一直在running的sql。
2,通过trx_mysql_thread_id:
1662332的去查询information_schema.processlist找到执行事务的客户端请求的SQL线程

select * from information_schema.processlist where id=1662333;
3,查看到端口和host以后,再在对应的服务器查看相关的应用和日志

netstat -nlatp |grep 23452
ps -eaf|grep 12059
查看到对应的服务器,然后查找事务相关的代码,定位到问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: