排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded

解决思路:

  select * from information_schema.innodb_trx 之后找到了一个一直没有提交的只读事务,

  kill 到了对应的线程后ok 了。

转载自:http://blog.sina.com.cn/s/blog_6bb63c9e0100s7cb.html

在Mysql5.5中,information_schema 库中增加了三个关于锁的表(MEMORY引擎);
  innodb_trx ## 当前运行的所有事务

  innodb_locks ## 当前出现的锁

  innodb_lock_waits ## 锁等待的对应关系

## 产生事务,在innodb_trx就有数据 ;
mysql> select * from information_schema.innodb_trx G;

如果没有产生锁等待,innodb_lock_waits 和innodb_locks 中没有数据

如果产生所等待,查询这三张表,找到对应线程,杀掉。

时间: 2024-10-10 11:03:36

排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded的相关文章

【MySQL】事务没有提交导致 锁等待Lock wait timeout exceeded异常

异常:Lock wait timeout exceeded; try restarting transaction 解决办法:(需要数据库最高权限) 执行select * from information_schema.innodb_trx 之后找到了一个一直没有提交的只读事务, 找到对应的线程后,执行 kill thread id,再确认一直没有提交的只读事物被干掉了就OK了.

mysql事务未提交导致锁等待如何解决

1.实验环境 Myql版本5.7.17-log 实验表结构 ([email protected])[apex]> show create table test; +-------+-----------------------------------------------------------------------------------------------------------------------------------+ | Table| Create Table      

mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决

前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: 在InnoDB Plugin之前,一般通过show full processlist(很难发现被锁的行记录问题所在)和show engine innodb status命令查看当前的数据库请求,然后再判断当前事务中锁的情况.随着mysql的发展,已经提供更加便捷的方法来监控数据库中的锁等待现象了.

mysql执行insert等语句报1205 Lock wait timeout exceeded try restarting transaction

mysql执行insert等语句是报如下错误: 1205 Lock wait timeout exceeded try restarting transaction 解决办法如下: 方法一:查看当前线程,是否有存在正在执行的你相关的语句,将其KILL  show processlist;  kill pid 方法二(方法一不行再执行):重启mysql数据库  service mysqld restart 注意:重启mysql会将在执行的线程全部kill

mysql被锁住 Lock wait timeout exceeded; try restarting transaction

解决方案1 在mysql中数据库information_schema中查询下面三张表 select * from innodb_trx; ## 当前运行的所有事务 select * from innodb_locks; ## 当前出现的锁 select * from innodb_lock_waits; ## 锁等待的对应关系 在innodb_trx中找到被锁线程的id,kill掉 kill xxxx ------------------------- 命令show processlist详解

mysql中,执行delete语句时出现Lock wait timeout exceeded问题

问题描述: 当我插入一条记录时,在调用save方法的时候出现了异常(记录重复了),导致了后面的commit语句不能执行了.这时我在数据库中删除重复记录时发现该表已经被锁上了.即出现错误.但过了一会再次执行delete,就能成功删除记录了. 原因分析: 由于commit语句没有执行到,即事务没有提交成功,表还是被锁着的.只能等锁超时了,才能再次执行delete等操作. 解决办法: 1.遇到问题后可以kill掉对应的线程再次执行delete等操作. 2.为避免问题出现,可以开启mysql中的auto

MySQL事务锁问题-Lock wait timeout exceeded

https://cloud.tencent.com/developer/article/1356959 https://cloud.tencent.com/info/2b391b12c82529a50b56ecbc3a7ae136.html https://www.jianshu.com/p/f030aa5d7a28 综合解决方案:增加多线程处理,减少数据处理时间. 配置线程池,将任务提交到线程池处理. 原文地址:https://www.cnblogs.com/Andrew520/p/10863

mysql Lock wait timeout exceeded

MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded java.lang.Exception:### Error updating database.  Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction### The error may involve defaultParameterMap### The error occurred wh

MySQL事务隔离级别和锁

表结构 create table record( id int auto_increment primary key, title varchar(255) not null, shortName varchar(255) not null, authorId int not null, createTime datetime not null, state int  not null, totalView int default null ); insert into record (titl