1. 使用information_schema表查询当前持有锁的线程信息
information_schema库是一个sql标准中定义的系统视图的集合,针对innodb的一些比较有用的视图有innodb_trx、innodb_locks、innodb_lock_waits等
SELECT * FROM information_schema.INNODB_TRX \G;
SELECT * FROM information_schema.INNODB_lock_waits;
SELECT * FROM information_schema.INNODB_locks;
![](https://img.haomeiwen.com/i3432149/d4e26456c2f38c0a.png)
![](https://img.haomeiwen.com/i3432149/aa3c231e87f0eb4a.png)
可以看到,线程号27的sql一直持有着一条记录的纪录锁,需要重点关注
2. 查看Innodb引擎信息
show engine innodb status\G;
![](https://img.haomeiwen.com/i3432149/70592ae726a46b92.png)
可以看到,线程号27的sql的事务号为35670,而且是活跃的,已经持有锁1210秒
3. 查看服务器所有连接信息
show full processlist;
该命令可以查看有哪些主机及线程连接到了mysql服务器
![](https://img.haomeiwen.com/i3432149/3d6e8c7cff0b50c1.png)
网友评论