不朽
不朽
发布于 2023-03-27 / 5 阅读
0
0

mysql查看死锁和解锁

mysql查看死锁和解锁

1.查询是否锁表

show OPEN TABLES where In_use > 0;
#模拟死锁
#设置手动提交事务
set @@autocommit=0;
#用for update锁住一条数据
START transaction ;
SELECT * from user WHERE id=1 for update; 
#再执行查询是否锁表命令
show OPEN TABLES where In_use > 0;
#可以看到有一个表正在锁定中

2.查看进程

#可以看到有个查询语句正在执
show processlist

3.查看在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
#杀死进程(实测kill 两次id才能成功杀掉进程 kill一次之后再执行show processlist 出现了新的id)
kill id

4.其它查看死锁命令

#查看当前的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

#查看当前等锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

评论