当前位置:网站首页>mysql死锁
mysql死锁
2022-07-30 20:49:00 【胡萝卜的兔】
1. 查看正在进行中的事务
SELECT * FROM information_schema.INNODB_TRX;
mysql> SELECT * FROM information_schema.INNODB_TRX \G;
*************************** 1. row ***************************
trx_id: 331123705
trx_state: RUNNING
trx_started: 2022-07-19 13:47:12
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 0
trx_mysql_thread_id: 11355
trx_query: NULL
trx_operation_state: NULL
trx_tables_in_use: 0
trx_tables_locked: 0
trx_lock_structs: 0
trx_lock_memory_bytes: 360
trx_rows_locked: 0
trx_rows_modified: 0
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 2. row ***************************
trx_id: 331123681
trx_state: RUNNING
trx_started: 2022-07-19 13:47:09
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 397
trx_mysql_thread_id: 11409
trx_query: update sys_role_user ru
inner join sys_role r on ru.client_role_id = r.client_role_id
inner join sys_user_center uc on ru.client_user_id = uc.id
set ru.role_id = r.id, ru.open_id = uc.open_id
where (ru.role_id is null or ru.open_id is null) and ru.update_time >= '2022-07-19 13:47:09'
and ru.client_id = 'webApp' and ru.`enable` = '1000102'
trx_operation_state: fetching rows
trx_tables_in_use: 3
trx_tables_locked: 3
trx_lock_structs: 397
trx_lock_memory_bytes: 63016
trx_rows_locked: 109781
trx_rows_modified: 0
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 9974
trx_is_read_only: 0
trx_autocommit_non_locking: 0
2 rows in set (0.00 sec)
如果发现 trx_state
为 LOCK_WAIT
则发生死锁 ,可以用trx_mysql_thread_id
mysql线程来,通过kill 线程
杀死线程
2 . 查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
3. 查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
4. 查询是否锁表
SHOW OPEN TABLES where In_use > 0;
5. 解决死锁
解除死锁
如果需要解除死锁,有一种最简单粗暴的方式,那就是找到进程id之后,直接干掉。
查看当前正在进行中的进程
show processlist
// 也可以使用
SELECT * FROM information_schema.INNODB_TRX;
这两个命令找出来的进程id 是同一个。
杀掉进程对应的进程
kill id
验证(kill后再看是否还有锁)
SHOW OPEN TABLES where In_use > 0;
边栏推荐
- 【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码
- Android studio连接MySQL并完成简单的登录注册功能
- @RequestParam使用
- Multi-threaded mutex application RAII mechanism
- MySQL 多表关联一对多查询实现取最新一条数据
- Ordinary int main(){} does not write return 0; what will happen?
- Swift RegexBuilder Vs. Raku Grammar
- FFmpeg —— 裁剪视频(含音视频),不需编解码(附完整源码)
- [The Beauty of Software Engineering - Column Notes] 31 | Is software testing responsible for product quality?
- ENS 表情包域名火了!是炒作还是机遇?
猜你喜欢
随机推荐
Network layer protocol------IP protocol
MySQL 多表关联一对多查询实现取最新一条数据
7、MySQL Workbench 导出导入数据库
普通的int main(){}没有写return 0;会怎么样?
Oblique document scanning and character recognition (opencv, coordinate transformation analysis)
Mysql索引特性(重要)
Recommendation System - Sorting Layer: Sorting Layer Architecture [User and Item Feature Processing Steps]
Recommended system: cold start problem [user cold start, item cold start, system cold start]
2021年PHP-Laravel面试题问卷题 答案记录
[NISACTF 2022]下
KingbaseESV8R6 snapshot too old的配置和测试
GateWay实现负载均衡
线性结构:顺序表和链表
用于命名实体识别的模块化交互网络
ENS 表情包域名火了!是炒作还是机遇?
Activiti 工作流引擎 详解
2022年SQL经典面试题总结(带解析)
第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】
HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
Apache DolphinScheduler新一代分布式工作流任务调度平台实战-上