文档

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

更新时间:
一键部署

问题描述

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