经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
🐬记一次MySQL执行修改语句超时问题
来源:cnblogs  作者:無顏組  时间:2024/5/22 9:37:46  对本文有异议

异常问题

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

问题排查

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

image.png

  1. 锁的持有和请求情况

image.png
image.png

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

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

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

得到
image.png
回滚XA事务操作

  1. # XA事务回滚命令的格式:
  2. xa rollback 'left(data,gtrid_length)''substr(data,gtrid_length+1,bqual_length)', formatID;
  3. #示列
  4. SELECT left('55f3cdd8-4f45-49c8-bbca-2738fa5a1514:35',38);
  5. SELECT substr('55f3cdd8-4f45-49c8-bbca-2738fa5a1514:35',39,1);
  6. xa rollback '55f3cdd8-4f45-49c8-bbca-2738fa5a1514:3', '5',1;

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号