0

我在我的项目中使用 GORM,一切都很好,直到我收到一条错误消息:

pq: sorry, too many clients already

我只是使用默认配置。在我对我的应用程序做了很多测试请求之后发生了错误。

重新启动应用程序后,错误就消失了。所以,我认为在我完成查询后不会释放 GORM 连接。我对 GORM 代码的检查不够深入,我只是在这里问一下,也许有人已经对此有过经验?

4

2 回答 2

1

您收到的错误消息是 PostgreSQL 错误,而不是 GORM。这是由于您多次打开数据库连接而引起的。

db, err := gorm.Open("postgres", "user=gorm dbname=gorm")

应该启动一次,然后再引用。

于 2016-04-29T13:27:57.757 回答
-2
sync.Once.Do(func() {
    instance, err := gorm.Open("postgres",
        "root:password@"+
            "tcp(localhost:3306)/rav"+
            "?charset=utf8&parseTime=True")
    if err != nil {
        log.Println("Connection Failed to Open")
        return
    }
    log.Println("Connection Established here")
    instance.DB().SetMaxIdleConns(10)
    instance.LogMode(true)
})

您可以将连接限制为单例函数,以便连接发生一次,即使它被多次调用。

于 2019-08-05T13:30:13.280 回答