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语句(如果有)。

表字段

相关推荐
三84441 分钟前
get方法/post方法/SQL注入文字型/数字型
数据库·sql·mysql
TDengine (老段)1 小时前
已有TSDB?一条配置,免费解锁AI数据管理平台
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
啦啦啦啦啦zzzz1 小时前
oat++框架应用之do、dao、service
服务器·c++·mysql·oatpp
暖和_白开水1 小时前
数据分析agent(十三_5):meta_demo:mysql
mysql·数据挖掘·数据分析
海兰10 小时前
【数据库】tdsql(mysql8.0)优化思考三
数据库·redis
煎饼学大模型11 小时前
Agent 的“大脑-手“解耦架构:当推理层和工具执行层各自独立演进
数据库·人工智能·oracle·架构·agent
暖和_白开水14 小时前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
千河殇 多想和她14 小时前
线上 Redis 突然“爆”了,怎么办?
数据库·redis·bootstrap
muddjsv14 小时前
SQLite数据库文件机制详解:journal、wal、shm文件作用与备份避坑
数据库·sqlite
吴声子夜歌16 小时前
MongoDB 4.2——应用程序设计
数据库·mongodb