mysql:1205-Lock wait timeout exceeded;try restarting transaction

1.现象

2.分析

使用下面sql在自带数据库的information_schema中查询,注意观察那些长时间开启事务又没完成的进程,然后根据进程的db、操作人、主机、事务开启时间和状态,来排查是什么情况导致的事务未完成(代码异常、执行时间超时等等);我这里是异步作业事务执行时间过长导致的

sql 复制代码
-- 查询事务和关联进程
select p.Id as '执行进程',p.`USER` as '执行用户',p.`HOST` as '执行进程主机',p.DB as '执行进程数据库',
t.*
from innodb_trx t
join PROCESSLIST p on t.trx_mysql_thread_id = p.ID;

3.解决

如果事务长时间没完成,能够判断出已经不可能完成了,直接杀掉开启该事务的进程,如果还能完成,则等待事务完成;同时优化代码,将长时间执行的事务分隔为多次短时间的事务.

sql 复制代码
-- 杀掉进程
kill 836703;
相关推荐
子夜江寒37 分钟前
MySQL 表创建与数据导入导出
数据库·mysql
wd_cloud2 小时前
QT/6.7.2/Creator编译Windows64 MySQL驱动
开发语言·qt·mysql
少废话h3 小时前
Redis主从与集群搭建全指南
大数据·linux·redis·mysql
The star"'3 小时前
mysql(4-7)
数据库·mysql·adb
The star"'3 小时前
mysql(1-3)
运维·mysql·云计算
思成不止于此4 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql
林夕sama6 小时前
MySQL的学习笔记
笔记·学习·mysql
镇潮7 小时前
Cursor 接入 mysql mcp
数据库·mysql·ai
计算机学姐8 小时前
基于Python的在线考试系统【2026最新】
开发语言·vue.js·后端·python·mysql·django·flask
染指11108 小时前
70.渗透-Mysql基础-创建数据库
数据库·mysql