75 lines
1.6 KiB
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
|
|
// }
|