我正试图删除表中的一行
delete from tbllink where linkid=243
但我一直收到错误信息:
错误代码:1205。超过锁定等待超时;尝试重新启动交易
正如在其他问题中提到的,我尝试运行:
show open tables where in_use>0;
这返回了0个结果。我还试着运行:
show processlist
这返回了以下列:
> 2244 username IP:50487 newdatabasetemp Sleep 1777
> 2247 username IP:50723 newdatabasetemp Sleep 1346
> 2249 username IP:50725 newdatabasetemp Sleep 1285
我尝试重新连接到服务器,但结果仍然相同。
需要考虑的几点:
- innodb_buffer_pool_size应该设置为可用RAM的70%左右
-
您可以执行:
设置全局innodb_lock_wait_timeout=5000;
然后这个:
SET innodb_lock_wait_timeout = 5000;
- 你能杀死所有与mysql相关的进程并重新启动服务器然后再试一次吗
当我从表中删除所有记录时,我也遇到了同样的错误。
除了我之外,没有人在使用服务器,所以我继续使用kill <process id>
逐个杀死所有正在运行的进程,它成功了。