mysql 报错 Lock wait timeout exceeded; try restarting transaction
mysql 报错 Lock wait timeout exceeded; try restarting transaction
做了一个定时同步数据库的任务,突然一只提示 Lock wait timeout exceeded; try restarting transaction
报这个错的原因主要是某个SQL 被锁住了。
处理方式:
打开数据库【information_schema】;
打开表【INNODB_TRX】;
如果发现里面有数据,并且数据字段【trx_state】中的值为LOCK WAIT,那说明该条信息被锁住了;
此时,可以使用kill ,杀死该进程,通过查看字段【trx_mysql_thread_id】来获取进程id,最后执行
kill 234234
但是杀死该进程,可能只是临时解决方法,更多的,需要排除为什么出现这个锁到问题,达到治本的效果,如:
可以查看字段【trx_query】该字段中就是存储的该条进程执行的SQL语句,可以通过排除该语句的问题,以解决最终问题。
附录:
INNODB_TRX表说明:
该日志由 bemender 于 2020年12月29日 发表
转载请注明文本地址:https://www.bemhome.com/post/88.html