Navicat执行sql时报错:lock wait timeout exceeded; try restarting transactio

错误场景

在navicat的数据库的某表,全选删除,等待了大概40s 。然后提示lock wait timeout exceeded; try restarting transactio,然后懵逼了,好在还没上线。

出现原因

原因是有一个事物占用这张表,而我确定删除的事件已经停止,并且已经提交了事物,但没有卵用。

解决方案

  1. 先看数据库线程有没有锁表
show PROCESSLIST;

如果没有就查看事物。

  1. 查看事物
select * from information_schema.innodb_trx;

查询状态为RUNNING即正在执行事物,可能就是这条事物锁住了表。

kill 掉trx_mysql_thread_id 这条线程应该就没问题了,但要确定这条线程跟业务代码无关。

# mysql   sql   error   navicat  

评论

企鹅群:39438021

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×