package dbc import ( "log" "recook/configs" "time" mysql2 "git.oa00.com/go/mysql" _ "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) type MysqlConfig struct { Dsn string `toml:"dsn"` ReadDSN []string `toml:"readDSN"` Active int `toml:"active"` Idle int `toml:"idle"` } var ( DB *gorm.DB ) func SetupMysql() { c := &MysqlConfig{} if configs.IsProductionEnv() { //c = &MysqlConfig{ // Dsn: "db_recook_super:sduEb9MTSiqhweXGpxa0@tcp(rm-uf6d9yr967ew7yxhn.mysql.rds.aliyuncs.com:3306)/db_recook?timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8", // Idle: 10, // Active: 50, //} //rm-uf6qb1jym26a044z03o.mysql.rds.aliyuncs.com //rm-uf6qb1jym26a044z0.mysql.rds.aliyuncs.com内网 c = &MysqlConfig{ Dsn: "db_recook_super:sduEb9MTSiqhweXGpxa0@tcp(rm-uf6d9yr967ew7yxhn.mysql.rds.aliyuncs.com:3306)/db_recook?timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8", Idle: 10, Active: 500, } log.Println("当前为正式数据库") } else { c = &MysqlConfig{ Dsn: "db_recook_v2:H6568h4Y7BDsWcYe@tcp(127.0.0.1:3306)/db_recook_v2?timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8", Idle: 10, Active: 500, } log.Println("当前为测试数据库") //c = &MysqlConfig{ // Dsn: "root:root@tcp(127.0.0.1:3306)/recook?timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8", // Idle: 10, // Active: 50, //} //log.Println("当前为本地数据库") } db, err := gorm.Open("mysql", c.Dsn) if err != nil { panic(err) } db.DB().SetMaxIdleConns(c.Idle) db.DB().SetMaxOpenConns(c.Active) db.DB().SetConnMaxLifetime(4 * time.Hour) if configs.IsProductionEnv() { db.LogMode(true) DB = db } else { db.LogMode(true) DB = db.Debug() DB = db } SetupNewMysql() log.Println("mysql初始化成功") } func SetupNewMysql() { if configs.IsProductionEnv() { err := mysql2.InitMysql(&mysql2.DbConfig{ Username: "db_recook_super", Password: "sduEb9MTSiqhweXGpxa0", Host: "rm-uf6d9yr967ew7yxhn.mysql.rds.aliyuncs.com", Port: 3306, Extend: "timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8\n", LogLevel: 4, MaxIdleConns: 10, MaxOpenConns: 500, DbName: "db_recook", }) if err != nil { panic(err) } } else { err := mysql2.InitMysql(&mysql2.DbConfig{ Username: "db_recook_v2", Password: "H6568h4Y7BDsWcYe", Host: "127.0.0.1", Port: 3306, Extend: "timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8\n", LogLevel: 4, MaxIdleConns: 10, MaxOpenConns: 500, DbName: "db_recook_v2", }) if err != nil { panic(err) } } }