Mysql 报错1205 Lock wait timeout
参考:https://blog.csdn.net/weixin_42425970/article/details/90551050
问题出现的主要原因是:Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit,导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded。
而有的时候show processlist,找不到对应的线程ID,使用下述方式解决。
解决方法一
重启Mysql服务
解决方式二(推荐使用)
执行以下SQL语句:查看事物表,找出被锁线程的id
select * from information_schema.innodb_trx;
执行结果
看看当前是否有未结束的事务,如果有,用 kill {trx_mysql_thread_id} 命令将事务杀死。比如:
kill 536