我在我的项目中使用 GORM,一切都很好,直到我收到一条错误消息:
pq: sorry, too many clients already
我只是使用默认配置。在我对我的应用程序做了很多测试请求之后发生了错误。
重新启动应用程序后,错误就消失了。所以,我认为在我完成查询后不会释放 GORM 连接。我对 GORM 代码的检查不够深入,我只是在这里问一下,也许有人已经对此有过经验?
您收到的错误消息是 PostgreSQL 错误,而不是 GORM。这是由于您多次打开数据库连接而引起的。
db, err := gorm.Open("postgres", "user=gorm dbname=gorm")
应该启动一次,然后再引用。
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)
})