暂无图片
如何在MySQL上调试超出锁等待超时的时间?
我来答
分享
QIU飞
2021-09-16
如何在MySQL上调试超出锁等待超时的时间?

在生产错误日志中,会看到:
SQLSTATE [HY000]:常规错误:1205超出了锁定等待超时;尝试重新启动事务,有没有办法找出在那个准确时刻哪个查询具有锁定?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
chengang

很好调试出来
mysql 有sleep函数。
可以用在update,select 中
比如 select *,sleep(100) from t

注意这里的sleep(100)是按行sleep的。且sleep(N)N的单位是秒

select *,sleep(100) from t 有10行
则每行都会sleep(100) 那么这个select语句至少要执行1000s

暂无图片 评论
暂无图片 有用 0
薛晓刚

默认50秒。
你直接看参数
show variables like ‘%timeout%’
这个为什么要调试?

暂无图片 评论
暂无图片 有用 0
文成

你应该是要找出那条sql导致锁等待吧,可以开启慢查询日志,通过对应的时间找到相关的日志

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏