写点什么

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

  • 2024-05-22
    福建
  • 本文字数:654 字

    阅读完需:约 2 分钟

异常问题



原因分析


  1. 这个问题发生在开发环境,怀疑是提交事务时终止项目运行,没有提交该事务,造成死锁

  2. 调试该事务时时间太长,为什么说有这个原因呢,因为通过查找日志显示


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.0select * from performance_schema.data_locks;# 查看锁的等待情况 MySQL8.0select * from performance_schema.data_lock_waits;# 当前线程详情show full processlist;
复制代码


1.发现事务 id176602 一直在运行状态



  1. 锁的持有和请求情况




  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@'%' ;
复制代码


得到



回滚 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;
复制代码


文章转载自:無顏組

原文链接:https://www.cnblogs.com/wenyan9-29/p/18204520

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
🐬记一次MySQL执行修改语句超时问题_MySQL_不在线第一只蜗牛_InfoQ写作社区