首页/数据/数据库速查/innodb_lock_wait_timeout 与 1205 错误
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条
性能与调优57 条
Redis 命令96 条Redis 运维与场景124 条

innodb_lock_wait_timeout 与 1205 错误

行锁等待超时参数:等待超过 innodb_lock_wait_timeout(默认 50s)报 1205 并回滚语句(非事务);调小能让失败更快暴露,调大不会解决根因。

数据库速查数据更新于 2026-10-12

查看与调整

查看与调整
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
SET SESSION innodb_lock_wait_timeout = 10;
-- 报错示例:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
1205等锁超时:语句被回滚,事务中其他修改保留(除非整体回滚)
建议OLTP 会话级调小(5-15s),后台任务可放宽
根因阻塞方事务/索引缺失/热点争用
超时值应小于业务接口超时:让数据库先失败,应用才能重试而不是一并挂起。

易错点

  • 调大到 500 秒「避免报错」:错误没了,线程全堵在等待里
  • 全局改完忘会话覆盖读取:连接池缓存的会话值不一,行为漂移

数据来源与参考

  • MySQL 8.0 Reference Manual: innodb_lock_wait_timeout

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌