mysql查看正在执行的SQL及死锁解锁

查看正在执行的sql

SHOW PROCESSLIST;

image.png
停止指定sql

KILL $ID

查看死锁两种方法:

  1. 查询是否锁表
SHOW OPEN TABLES WHERE IN_USE > 0;
  1. 查询在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

解除死锁

根据以上sql查询结果,使用

SHOW PROCESSLIST;

查询到死锁sql的id,使用

KILL $ID

结束死锁的sql,完成解锁.

常见的事务查询

1:查看当前的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:查看当前锁定的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看当前等锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

查询所有连接客户端IP

SELECT substring_index(host, ':',1) AS host_name,state,count(*) FROM information_schema.processlist GROUP BY state,host_name;

image.png