🐬记一次MySQL执行修改语句超时问题
异常问题

原因分析
- 这个问题发生在开发环境,怀疑是提交事务时终止项目运行,没有提交该事务,造成死锁
- 调试该事务时时间太长,为什么说有这个原因呢,因为通过查找日志显示
The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.

问题排查
# 当前运行的所有事务
select * from information_schema.innodb_trx;
# 查看锁的持有和请求情况 MySQL8.0
select * from performance_schema.data_locks;
# 查看锁的等待情况 MySQL8.0
select * from performance_schema.data_lock_waits;
# 当前线程详情
show full processlist;
- 1.发现事务id176602一直在运行状态

- 锁的持有和请求情况


- kill 掉事务关联的mysql线程ID (trx_mysql_thread_id)
KILL 362
trx_mysql_thread_id = 0 无法Kill 接着排查
确认 trx_mysql_thread_id = 0 为XA(分布式)事务
- 执行回滚操作
#查看XA事务信息
xa recover;
#执行报错可能没有权限
GRANT XA_RECOVER_ADMIN ON *.* TO root@'%' ;
得到

回滚XA事务操作
# XA事务回滚命令的格式:
xa rollback 'left(data,gtrid_length)','substr(data,gtrid_length+1,bqual_length)', formatID;
#示列
SELECT left('55f3cdd8-4f45-49c8-bbca-2738fa5a1514:35',38);
SELECT substr('55f3cdd8-4f45-49c8-bbca-2738fa5a1514:35',39,1);
xa rollback '55f3cdd8-4f45-49c8-bbca-2738fa5a1514:3', '5',1;
🐬记一次MySQL执行修改语句超时问题的更多相关文章
- 不登录到MySQL执行SQL语句
mysql -e 不登录到MySQL执行SQL语句 mysql -u root -p -e "SHOW DATABASES"
- mysql执行SQL语句时报错:[Err] 3 - Error writing file '/tmp/MYP0G1B8' (Errcode: 28 - No space left on device)
问题描述: 今天一同事在mysql中执行SQL语句的时候,报了/tmp空间不足的问题,报错如下: [SQL] SELECT f.prov as 字段1, MAX( CASE f.flag_name W ...
- mysql执行update语句受影响行数是0
mybatis连接mysql数据库,发现同一个update执行多次,返回的int值都是1. 我记得同样的update再次执行时 受影响行数是0. 后来发现,我之前一直用的SQLyog是这样子的. 原来 ...
- mysql执行sql语句过程
开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...
- 使用Mysql执行SQL语句基础操作
SQL: 又叫结构化语言,是一种用来操作RDBMS的数据库语言,在关系型数据库中都支持使用SQL语句,如oracle.mysql等等. 注意: 在关系型数据库中sql语句是通用的,而在非关系型数据库 ...
- mysql 执行 sql 语句提示Parameter '@XXX' must be defined
执行 sql 语句 MySqlException: Parameter '@maxNo' must be defined. 执行 sql 中含有自定义变量 @maxNo,抛出异常 解决方法: 连接字符 ...
- PHP获取MySQL执行sql语句的查询时间
//计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function runtime($mode=0 ...
- mysql 执行sql语句执行问题
SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL ...
- (转载)PHP怎么获取MySQL执行sql语句的查询时间
(转载自CSDN) 方法一: //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function ...
- Mysql修改语句的运行流程
执行修改语句前要先连接数据库,这是连接器的工作. 接下来,分析器会通过词法和语法解析知道这是一条更新语句.优化器决定要使用 ID 这个索引.然后,执行器负责具体执行,找到这一行,然后更新. Mysql ...
随机推荐
- 【FAQ】视频编辑服务常见问题及解答
Q1问题描述 1. 访问贴纸等素材的时候提示"网络异常,请重试"怎么办? 2. 使用AI能力时,提示"errorCode:20124 errorMsg:Method no ...
- JS实现文件转base64
核心: function file2base64(){ fileAddress = document.getElementById("fileImage").files[0]; f ...
- 重新点亮linux 命令树————守护进程[二十三]
前言 简单整理一下守护进程. 正文 守护进程一般是开机启动的. 使用nohup 与 & 符号配合运行一个命令 nohup命令使进程忽略hangup(挂起)信号 使用tail 查看log文件. ...
- 【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取
前言 文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础.高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限. 这些开源的库或者方法缺点大致可以罗列如下: ...
- vscode设置语法错误时在文件名显示报错
- Java实现查看手机配置与功能
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 代码 `` ...
- 【笔记】join using&AVG
oracle using 在oracle中,using用于简化连接查询,只有当查询是等值连接和连接中的列必须具有相同的名称与数据类型时,才能使用using关键字进行简化 比如原来是 select s. ...
- 力扣415(java)-字符串相加(简单)
题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换 ...
- 力扣429(java)-构造矩形(简单)
题目: 作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 你设计的矩 ...
- 力扣461(java)-汉明距离(简单)
题目: 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目. 给你两个整数 x 和 y,计算并返回它们之间的汉明距离. 示例 1: 输入:x = 1, y = 4输出:2解释:1 ...