首页 > 数据库 >记一次MySQL执行修改语句超时问题

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

时间:2024-05-21 17:10:26浏览次数:24  
标签:语句 事务 55f3cdd8 mysql XA trx MySQL 超时 data

异常问题

image.png

原因分析

  1. 这个问题发生在开发环境,怀疑是提交事务时终止项目运行,没有提交该事务,造成死锁
  2. 调试该事务时时间太长,为什么说有这个原因呢,因为通过查找日志显示

The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.

image.png

问题排查

# 当前运行的所有事务
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. 1.发现事务id176602一直在运行状态

image.png

  1. 锁的持有和请求情况

image.png
image.png

  1. kill 掉事务关联的mysql线程ID (trx_mysql_thread_id)
KILL 362

trx_mysql_thread_id = 0 无法Kill 接着排查
确认 trx_mysql_thread_id = 0 为XA(分布式)事务

  1. 执行回滚操作
#查看XA事务信息
xa recover;
#执行报错可能没有权限
GRANT XA_RECOVER_ADMIN ON *.* TO root@'%' ;

得到
image.png
回滚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;

标签:语句,事务,55f3cdd8,mysql,XA,trx,MySQL,超时,data
From: https://www.cnblogs.com/wenyan9-29/p/18204520

相关文章

  • Oracle和MySQL的区别
    刚进公司接触到了Oracle,记录一下他们的区别,面试的时候也有问到过,而且上来就是千万级别的数据调优,嘻嘻,我只是一个3年java。题外话,甚至有一些公司会问我java跟C、python的区别,以及具体区别的例子,然后我如果回答上来了,他们会告诉我,这边只做后端而且只用java,笑嘻了就本人最近的使用和......
  • mysql
    存储引擎mysql表有几种类型/存储引擎?INNODB,MYISAM,MEMORY,CSV INNODB设计存储结构=内存区域+磁盘区域 刷盘策略: 存储方式特点innodbVSmyisamINNODB特点:1.支持ACID的事务,支持四种隔离级别。2.支持行级锁及外检约束,支持写并发。3.不存储总行数。4.一个innod......
  • mysql中主键、外键、约束、索引
    主键用于唯一标识表中每一行数据,外键用于建立表与表之间关联关系,约束用于限制表中数据的规则,索引用于加速查询。1.主键是一种用于唯一标识表中每一行数据的标识符。在Mysql中,主键可以是一个或多个列的组合,但是必须满足以下条件:主键列的值必须唯一,不能重复。主键列的值不能为......
  • 在Docker中安装MySQL的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  build-essential\  curl\  apt-trans......
  • 创建你的-Mysql-数据库-全-
    创建你的Mysql数据库(全)原文:zh.annas-archive.org/md5/853FEC9D976A75004408D5A9A661EDD8译者:飞龙协议:CCBY-NC-SA4.0前言1995年发布的MySQL已成为最受欢迎的开源数据库系统。MySQL和phpMyAdmin的普及使得许多非IT专家能够使用MySQL后端构建动态网站。本书是一......
  • 二进制安装mysql5.7
    1.创建目录mkdir-p/server/toolsmkdir/applicationmkdir/mysql-data/mysql/data-p2.建用户与环境变量useradd-s/sbin/nologinmysqlecho"exportPATH=/application/mysql/bin:$PATH">>/etc/profilesource/etc/profile3.下载与解压文件cd/server/tools/wg......
  • MySQL 字段截取拼接
    @目录前言需求:拼接函数:截取函数:总结前言请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、提示:以下是本篇文章正文内容,下面案例可供参考需求:将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。拼接函数:CONCAT(A,B):将A和B拼接起来。截取函数:LEFT(s......
  • mysql允许其它机器连接
    1.修改MySQL的配置文件(windows是my.ini,linux是my.cn.cnf或my.cnf),如果有bind-address这一行,值改为0.0.0.0,这样可以允许任意IP地址连接到MySQL服务器。bind-address=0.0.0.0没有bind-address,就补上bind-address=0.0.0.0这一行2.修改权限grantallprivilegeson*.*to'r......
  • 阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
    主要实现思路1、在clickhouse中创建MySQL引擎表。2、根据MySQL引擎表的信息创建目标表。3、实现canal实时增量同步MySQL数据到clickhouse。MySQL的准备修改配置文件开启Binlog[root@hadoop100module]$sudovim/etc/my.cnfserver-id=1log-bin=mysql-binbinlog_form......
  • Mysql数据库安装卸载(windows)
    MySQL数据库环境准备MySQL下载、安装、配置、卸载、安装DBMS、使用DBMSMySQL版本及下载MySQL是Oracle的免费的关系型数据库,官网https://www.mysql.com/MySQL8.x新特性性能比5.7快支持NoSQL存储:5.7版本开始提供对NoSQL的支持,8.0.x作了改进窗口函数(新的查询方式)索引......