本文共 504 字,大约阅读时间需要 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;
可以看到有一个表正在锁定中
二、查看进程
show processlist
可以看到有个查询语句正在执行
三、查看在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
四、杀死进程(实测kill 两次id才能成功杀掉进程 kill一次之后再执行show processlist 出现了新的id)
kill id
五、其它查看死锁命令
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
转载地址:http://uzgai.baihongyu.com/