MySQL执行请求报错锁超时Lock wait timeout exceeded

更新时间:2022-11-03 10:30:54

问题描述

MySQL执行请求报错锁超时:Lock wait timeout exceeded; try restarting transaction

解决方案

1、5.6和5.7版本

  • 查看锁等待关系,获取blocking_trx_id
    • select * from information_schema.innodb_lock_waits;
  •  根据trx_id(第1步获取到到blocking_trx_id)找到对应的trx_mysql_thread_id
    • select trx_id,trx_state,trx_started,trx_mysql_thread_id,trx_query from information_schema.INNODB_TRX;
  • 确认可以接受其对应的事务回滚的情况下,可以将其终止。
    • kill  trx_mysql_thread_id 

 

2、8.0版本

  • 查看锁等待关系
    • select waiting_pid,waiting_query,blocking_pid,blocking_query from sys.innodb_lock_waits;
  • 确认可以接受其对应的事务回滚的情况下,可以将其终止。
    • kill blocking_pid

适用范围:

RDS MySQL 

 

  • 本页导读
  • 问题描述
  • 解决方案
  • 适用范围:
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等