blog_backend_api/vendor/wapi/config/dbconf.go

75 lines
1.6 KiB
Go

package config
import (
"database/sql"
"git.jiaxianghudong.com/go/db"
)
var (
MySQLMain *db.Database
MySQLLog *db.Database
MySQLExt *db.Database
MySQLAgent *db.Database
)
// InitMySQLMain 连接MYSQL main
func InitMySQLMain(mysqlDirver string, maxOpen, maxIdle int) error {
MySQLMain = &db.Database{}
return initMySQL(MySQLMain, mysqlDirver, maxOpen, maxIdle)
}
// InitMySQLLog 连接MYSQL LOG
func InitMySQLLog(mysqlDirver string, maxOpen, maxIdle int) error {
MySQLLog = &db.Database{}
return initMySQL(MySQLLog, mysqlDirver, maxOpen, maxIdle)
}
// InitMySQLExt 连接MYSQL Ext
func InitMySQLExt(mysqlDirver string, maxOpen, maxIdle int) error {
MySQLExt = &db.Database{}
return initMySQL(MySQLExt, mysqlDirver, maxOpen, maxIdle)
}
func InitMySQLAgent(mysqlDirver string, maxOpen, maxIdle int) error {
MySQLAgent = &db.Database{}
return initMySQL(MySQLAgent, mysqlDirver, maxOpen, maxIdle)
}
// initMySQL mysql
func initMySQL(mySQLDB *db.Database, mysqlDirver string, maxOpen, maxIdle int) error {
var err error
mySQLDB.DB, err = sql.Open("mysql", mysqlDirver)
if err != nil {
return err
}
if maxOpen > 0 {
mySQLDB.DB.SetMaxIdleConns(maxIdle)
mySQLDB.DB.SetConnMaxLifetime(-1)
}
if maxIdle > 0 {
mySQLDB.DB.SetMaxOpenConns(maxOpen)
}
err = mySQLDB.DB.Ping()
if err != nil {
return err
}
return nil
}
// // GetMySQLMain 获取MYSQL DB操作实例
// func GetMySQLMain() *db.Database {
// return MySQLMain
// }
// // GetMySQLLog 获取MYSQL DB操作实例
// func GetMySQLLog() *db.Database {
// return MySQLLog
// }
// // GetMySQLExt 获取MYSQL DB操作实例
// func GetMySQLExt() *db.Database {
// return MySQLExt
// }