MySQL 5.7.25数据库死锁

本文介绍如何使用MySQL的InnoDB引擎进行事务状态检查、死锁监测与处理。包括查看InnoDB状态、开启锁监控、查询进程、死锁事务及杀死死锁的方法。适用于数据库管理员和开发人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查看innodb状态
show engine innodb status\G

2、开启lock_monitor监控
use databases sys;
create table innodb_lock_monitor(x int) engine=innodb;

3、查询进程
mysql> show processlist;

4、查询死锁事务
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
±--------±----------±--------------------±----------------------±--------------------±-----------±--------------------±---------------------------------------------------------------------±--------------------±------------------±------------------±-----------------±----------------------±----------------±------------------±------------------------±--------------------±------------------±-----------------------±---------------------------±--------------------------±--------------------------±-----------------±---------------------------+
| trx_id | trx_state | trx_started | trx_requested_lock_id | trx_wait_started | trx_weight | trx_mysql_thread_id | trx_query | trx_operation_state | trx_tables_in_use | trx_tables_locked | trx_lock_structs | trx_lock_memory_bytes | trx_rows_locked | trx_rows_modified | trx_concurrency_tickets | trx_isolation_level | trx_unique_checks | trx_foreign_key_checks | trx_last_foreign_key_error | trx_adaptive_hash_latched | trx_adaptive_hash_timeout | trx_is_read_only | trx_autocommit_non_locking |
±--------±----------±--------------------±----------------------±--------------------±-----------±--------------------±---------------------------------------------------------------------±--------------------±------------------±------------------±-----------------±----------------------±----------------±------------------±------------------------±--------------------±------------------±-----------------------±---------------------------±--------------------------±--------------------------±-----------------±---------------------------+
| 2283456 | LOCK WAIT | 2018-12-18 07:38:44 | 2283456:148:3:19 | 2018-12-18 07:38:44 | 2 | 22661 | UPDATE incentecsh.user_wallet SET available = 10 WHERE id = 38 | starting index read | 1 | 1 | 2 | 1136 | 1 | 0 | 0 | REPEATABLE READ | 1 | 1 | NULL | 0 | 0 | 0 | 0 |
| 2278681 | RUNNING | 2018-12-18 06:47:56 | NULL | NULL | 3 | 22374 | NULL | NULL | 0 | 1 | 2 | 1136 | 1 | 1 | 0 | REPEATABLE READ | 1 | 1 | NULL | 0 | 0 | 0 | 0 |
±--------±----------±--------------------±----------------------±--------------------±-----------±--------------------±---------------------------------------------------------------------±--------------------±------------------±------------------±-----------------±----------------------±----------------±------------------±------------------------±--------------------±------------------±-----------------------±---------------------------±--------------------------±--------------------------±-----------------±---------------------------+
2 rows in set (0.01 sec)

5、杀死死锁
kill 22661

备注:
1:查看当前的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:查看当前锁定的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值