MySQL 怎么查看死锁
在MySQL中,可以通过以下方式查看数据库死锁:
使用
SHOW ENGINE INNODB STATUS
命令查看 InnoDB 引擎的状态信息,包括最近发生的死锁情况。找到”LATEST DETECTED DEADLOCK”部分,如果有死锁发生,会显示相关的信息。查询
information_schema.INNODB_TRX
、information_schema.INNODB_LOCKS
和information_schema.INNODB_LOCK_WAITS
表:使用这两个表可以查询当前正在被锁定的事务和等待锁的事务。如果有事务在等待锁,并且出现循环等待的情况,那么可能发生了死锁。1
2
3
4
5
61、查看正在进行中的事务
SELECT * FROM information_schema.INNODB_TRX
2、查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
3、查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;使用 MySQL 的错误日志文件来查看是否有死锁发生。在 MySQL 配置文件中配置错误日志路径,然后查看日志文件中的相关信息。
执行 SELECT 语句:可以执行一条简单的 SELECT 语句来判断是否发生了死锁。如果发生死锁,会抛出
Deadlock found when trying to get lock
错误。
解除死锁
如果需要解除死锁,有一种最简单粗暴的方式,那就是找到进程id之后,直接干掉。
1 |
|
这两个命令找出来的进程id 是同一个,杀掉进程对应的进程 id
1 |
|
MySQL 怎么查看死锁
https://flepeng.github.io/041-MySQL-MySQL-怎么查看死锁/