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
文档内容是否对您有帮助?