go
data_error
ai_generated
true
sql: 连接已关闭
sql: connection has been closed
ID: go/database-sql-conn-max-lifetime
80%修复率
83%置信度
0证据数
2024-08-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.22 | active | — | — | — |
根因分析
由于超过 ConnMaxLifetime,数据库连接被关闭后仍被使用,导致后续查询出错。
English
A database connection is used after it has been closed due to exceeding ConnMaxLifetime, causing errors on subsequent queries.
解决方案
-
85% 成功率
db.SetConnMaxLifetime(30 * time.Minute); db.SetMaxOpenConns(100); db.SetMaxIdleConns(10)
无效尝试
常见但无效的做法:
-
70% 失败
Can cause stale connections and resource leaks.
-
90% 失败
database/sql manages connections; manual reuse is not supported.