本地代码每次执行 Update 语句时都会报错:

1
Lock wait timeout exceeded; try restarting transaction

后来找到了这篇文章,于是执行 SELECT * FROM information_schema.INNODB_TRX ,发现有五个 trx_stateRunning 的事务,然后再使用 show processlist 查看线程,发现五个事务全部在 sleep 线程中,kill 掉这五个线程,再次执行 Update 没有报错。