Go中使用MySQL連線池
阿新 • • 發佈:2019-01-11
使用MySQL的連結池可能存在如下問題:在客戶端連線池中的一條空閒連結,可能是一條已經被MySQL服務端關閉掉的連結。
下面是beego中的設定MySQL連線池的方法:
err = orm.RegisterDataBase("default", "mysql", iniConfig.String("mysql"))
if err != nil {
logs.Error("db register data error:%v", err)
}
mdb, err := orm.GetDB("default")
if err != nil {
panic(fmt.Errorf("get db error:%s" , err))
}
mdb.SetConnMaxLifetime(time.Second * 20)
mdb.SetMaxIdleConns(10)
mdb.SetMaxOpenConns(30)
如上面的程式碼,主要用來修改連線池中每個連結的最長生命時間、最大空閒連結數以及最大可以開啟的連結。
因為在orm中並沒有暴露SetConnMaxLifetime的方法,所以需要獲取*DB物件來處理
mdb, err := orm.GetDB("default")