Lock wait timeout exceeded; try restarting transaction 怎么解决
时间: 2023-11-22 18:48:50 浏览: 66
MySQL wait_timeout连接超时
5星 · 资源好评率100%
当MySQL出现“Lock wait timeout exceeded; try restarting transaction”的错误提示时,说明这条语句被锁住了,需要释放这个锁。解决方案如下:
1. 优化SQL语句,减少锁的竞争。可以通过添加索引、优化查询语句等方式来减少锁的竞争。
2. 调整MySQL的参数。可以通过修改innodb_lock_wait_timeout参数的值来延长等待锁的时间,或者通过修改innodb_buffer_pool_size参数的值来增加缓存池的大小,从而减少锁的竞争。
3. 重启MySQL服务。如果以上两种方法都无法解决问题,可以尝试重启MySQL服务,释放所有的锁。
```shell
# 修改innodb_lock_wait_timeout参数的值
SET innodb_lock_wait_timeout = 120;
# 修改innodb_buffer_pool_size参数的值
SET innodb_buffer_pool_size = 2G;
```
阅读全文