go resource_error ai_generated true

错误:数据库连接池耗尽:连接过多

error: database/sql: connection pool exhausted: too many connections

ID: go/database-sql-connection-pool-exhausted

其他格式: JSON · Markdown 中文 · English
80%修复率
90%置信度
0证据数
2024-07-14首次发现

版本兼容性

版本状态引入弃用备注
1.18 active

根因分析

数据库连接池中的连接数量达到上限,无法创建新连接。

English

数据库连接池中的连接数量达到上限,无法创建新连接。

generic

解决方案

  1. 90% 成功率
    db.SetMaxOpenConns(100)
    db.SetMaxIdleConns(50)
    db.SetConnMaxLifetime(time.Hour)
  2. 95% 成功率
    defer rows.Close()
    defer stmt.Close()
    defer db.Close()

无效尝试

常见但无效的做法:

  1. 70% 失败

    可能超出数据库服务器最大连接数,导致服务器崩溃。

  2. 50% 失败

    只是临时解决,问题会再次出现。