Mysql删除占用事务的线程

参考:https://www.jianshu.com/p/dd0291391188

产生原因:这个问题的原因是在mysql中产生了事务A,执行了修改的语句,比如: update t1 set aget=18 where id=1;此时事务并未进行提交,事务B开始运行,也同样需要修改id为1的用户的年龄: update t1 set aget=20 where id=1; 那么此时事务B会等待事务A结束释放写锁才能执行成功,否则则会等待一段时间,产生报错:

bash 复制代码
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

解决办法(删除占用事务的线程id):

1、查询事务id

bash 复制代码
select * from information_schema.innodb_trx

2、删除事务

bash 复制代码
kill 24232092

到此可以继续你的修改数据的操作了 。

3、如果以上方法杀掉线程,但还是不能解决,则我们就可以查找执行线程用时比较久的用户,然后直接kill掉

bash 复制代码
SELECT * from information_schema.`PROCESSLIST` WHERE Time > 1000 AND USER = 'root' ORDER BY TIME desc;

SELECT * from information_schema.PROCESSLIST WHERE Time > 1000 AND USER = 'root' ORDER BY TIME desc;

拓展 (INFORMATION_SCHEMA INNODB_TRX 表)

INNODB_TRX表包含有关当前正在执行的每个事务的信息 ,包括事务是否正在等待锁,事务何时开始以及事务正在执行的SQL语句(如果有)。

表字段

相关推荐
熊文豪5 小时前
文档数据库替换:金仓数据库MongoDB兼容性全解析
数据库·mongodb·kingbasees·金仓数据库·电科金仓
念越5 小时前
MySQL 联合查询执行原理:多表笛卡尔积
数据库·mysql
七夜zippoe5 小时前
模拟与存根实战:unittest.mock深度使用指南
linux·服务器·数据库·python·模拟·高级摸您
山岚的运维笔记5 小时前
SQL Server笔记 -- 第70章:临时表的使用
数据库·笔记·sql·microsoft·oracle·sqlserver
_千思_5 小时前
【小白说】数据库系统概念 7
数据库
数据知道5 小时前
JSON 与 BSON 深度解析:理解 MongoDB 底层数据格式与扩展类型。
数据库·mongodb·json
杨云龙UP6 小时前
Oracle RMAN 归档日志清理标准流程:CROSSCHECK / EXPIRED / SYSDATE-N
运维·服务器·数据库
Highcharts.js6 小时前
Highcharts跨域数据加载完全指南:JSONP原理与实战
javascript·数据库·开发文档·highcharts·图表开发·跨域数据
知识分享小能手6 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 安全机制 — 语法知识点及使用方法详解(18)
数据库·学习·sqlserver
此生只爱蛋6 小时前
【Redis】渐进式遍历
数据库·redis·github