MYSQL锁等待,死锁

OSC李强 发布于 2013/05/24 20:32
阅读 1K+
收藏 2
MYSQL一直很稳定,但是突然连接数超出最大连接数,Tomcat报 "Lock wait timeout exceeded; try restarting transaction",把tomcat重启可以恢复正常!! 能分析下这是怎么回事吗?
加载中
1
几点人
几点人
mysql在数据库information_schema 中增加了三个关于锁的表:
innodb_trx  :当前运行的所有事务
innodb_locks : 当前出现的锁

innodb_lock_waits :锁等待的对应关系

可查看这三个表,确定因什么而出现的锁等待

王阿觉
王阿觉
感谢,学习
0
Leviathans
Leviathans

看看最近的sql。。。

OSC李强
OSC李强
看了看就是普通的查询和更新啊,出现这个异常是更新数据的原因还是查询的原因啊!
0
programtic
programtic

postgres里面可以设置把超过指定时长的sql打印出来,mysql应该也有相应的参数。


我们也出现过类似情况,现在就是用这种办法监控表被锁的sql。

0
彭博
彭博
之前我也碰到了,是不是有两个表连接查询的时候相互引用然后等待了?
0
Leviathans
Leviathans
事务 锁表顺序
0
王瑞平
王瑞平

最大可能是循环打开数据库没有关闭

达到最大连接数很可疑

返回顶部
顶部