go data_error ai_generated true

sql: 连接已关闭

sql: connection has been closed

ID: go/database-sql-conn-max-lifetime

其他格式: JSON · Markdown 中文 · English
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.

generic

解决方案

  1. 85% 成功率
    db.SetConnMaxLifetime(30 * time.Minute); db.SetMaxOpenConns(100); db.SetMaxIdleConns(10)

无效尝试

常见但无效的做法:

  1. 70% 失败

    Can cause stale connections and resource leaks.

  2. 90% 失败

    database/sql manages connections; manual reuse is not supported.