mysql死锁问题解决

Scroll Down

1.现象

项目中对于那张表的操作,都无法执行,出现如下异常信息。

Lock wait timeout exceeded; try restarting transaction

2.原因

原因未知,以下为当时的场景:
debug代码过程中,在某一行长时间停留,分析各参数,而后并重启了项目。再次运行代码,请求接口,关于这张表的数据库操作(update、delete)都无法执行。

3.解决方法

3.1.查看mysql中正在执行的事务

select * from information_schema.innodb_trx;

查询发现有一条trx_state为RUNNING的事务,执行时间特别长。且调用接口操作数据库时,会新增一条LOCK_WAIT的事务。

3.2.删除事务

根据上面查出的记录中的trx_mysql_thread_id,删除事务。

kill 5127;