Java执行一个SQL查询未提交,遇到1205错误。

java.lang.Exception:

### Error updating database.  Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

解决办法:

执行mysql命令: show full processlist;

然后找出查询语句的系统id:kill掉被锁住的线程id

查看事物表: select * from information_schema.innodb_trx;

参考文章:记一次处理MySql锁等待(Lock wait timeout exceeded):http://my.oschina.net/quanzhong/blog/222091

查询事物锁表的处理方法

查询 正在执行的事务:

SELECT * FROM information_schema.INNODB_TRX

根据这个事务的线程ID(trx_mysql_thread_id):

可以使用mysql命令杀掉线程:kill 线程id

mysql查看未提交的事务进程

查询 正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX

查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;


有时候代码里运行异常会导致出现未提交的事务,快速的解决办法是查到这个进程,直接kill掉,当然长久之计还是找到,有关事务的代码,是否又逻辑上的错误,没有关闭事务,之前我们项目出现过这种幽灵代码,因为这种问题并不是每次都出现,也不好重新,费了很大劲,一大部分原因是因为那兄弟用的手动开启事务,逻辑内容太多,有一个小逻辑导致事务未关闭,很隐蔽,也很致命,所以建议使用注解版事务,会自动关闭。

最新文章

  1. 用PowerMock mock 临时变量
  2. puporwindow
  3. 垂直时间轴HTML
  4. C++的那些事:面向对象
  5. WinForm下窗体标题栏上有“帮助”按钮
  6. ZOJ-3929 Deque and Balls (DP+找规律)
  7. CentOS 6.5断电后启动出现:unexpected inconsistency run fsck manully
  8. JSON 日期格式带 T 问题
  9. JVM必备指南(转)
  10. Scrapy模拟登录知乎
  11. js发展历史
  12. C# 如何将PDF转为多种图像文件格式(Png/Bmp/Emf/Tiff)
  13. vue登录拦截
  14. 【数论】卢卡斯定理模板 洛谷P3807
  15. canvas和SVG
  16. bootstrap模态框显示时被遮罩层遮住了
  17. quratz启动流程
  18. (网页)angularjs中的interval定时执行功能(转)
  19. Java如何找到一个单词的每一次匹配?
  20. 李洪强iOS之集成极光推送一iOS SDK概述

热门文章

  1. jquery 04
  2. cluster discovery概述及FaultDetection分析
  3. 非常有用的sql脚本
  4. TreeView 的简单实用
  5. vue使用jsonp
  6. 深度解析VC中的消息
  7. 【CS Round #43 D】Bad Triplet
  8. 洛谷 P2646 数数zzy
  9. 阿里云部署Docker(3)----指令学习
  10. 页面事件(Init,Load,PreRender)执行顺序