1. 程式人生 > >Go中使用MySQL連線池

Go中使用MySQL連線池

使用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")