博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql错误: ERROR 1205: Lock wait timeout exceeded解决办法(MySQL锁表、事物锁表的处理方法)...
阅读量:6082 次
发布时间:2019-06-20

本文共 840 字,大约阅读时间需要 2 分钟。

   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):

查询事物锁表的处理方法

查询 正在执行的事务:

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掉,当然长久之计还是找到,有关事务的代码,是否又逻辑上的错误,没有关闭事务,之前我们项目出现过这种幽灵代码,因为这种问题并不是每次都出现,也不好重新,费了很大劲,一大部分原因是因为那兄弟用的手动开启事务,逻辑内容太多,有一个小逻辑导致事务未关闭,很隐蔽,也很致命,所以建议使用注解版事务,会自动关闭。

你可能感兴趣的文章
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>