123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package boots
- import (
- "fmt"
- "go-nc/configs/global"
- "go-nc/hook"
- "go.uber.org/zap"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- )
- // 初始化数据库连接
- func InitDB() *gorm.DB {
- logger := InitLogger()
- // 连接数据库配置
- dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=%t&loc=%s",
- global.App.Config.Database.Mysql.UserName,
- global.App.Config.Database.Mysql.Password,
- global.App.Config.Database.Mysql.Host,
- global.App.Config.Database.Mysql.Port,
- global.App.Config.Database.Mysql.Database,
- global.App.Config.Database.Mysql.Charset,
- global.App.Config.Database.Mysql.ParseTime,
- global.App.Config.Database.Mysql.Loc,
- )
- // 连接数据库
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- Logger: &hook.CustomLogger{
- Logger: logger,
- },
- })
- if err != nil {
- logger.Error("mysql:连接失败", zap.Error(err))
- return nil
- }
- // 设置连接池参数
- sqlDB, err := db.DB()
- if err != nil {
- logger.Error("mysql:连接失败", zap.Error(err))
- return nil
- } else {
- // 链接成功打印日志
- logger.Info("mysql:连接成功")
- }
- sqlDB.SetMaxIdleConns(global.App.Config.Database.Mysql.MaxIdleConns) // 设置最大空闲连接数
- sqlDB.SetMaxOpenConns(global.App.Config.Database.Mysql.MaxOpenConns) // 设置最大连接数
- sqlDB.SetConnMaxLifetime(0) // 设置了连接可复用的最大时间
- // 将数据库实例赋值给全局变量
- return db
- }
- // 初始化 StarRocks 数据库
- func InitStarRocksDB() *gorm.DB {
- logger := InitLogger()
- // 连接 StarRocks 数据库配置
- starRocksDsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s",
- global.App.Config.Database.StarRocks.UserName,
- global.App.Config.Database.StarRocks.Password,
- global.App.Config.Database.StarRocks.Host,
- global.App.Config.Database.StarRocks.Port,
- global.App.Config.Database.StarRocks.Database,
- )
- // 连接 StarRocks 数据库
- starRocksDB, err := gorm.Open(mysql.Open(starRocksDsn), &gorm.Config{
- Logger: &hook.CustomLogger{
- Logger: logger,
- },
- })
- if err != nil {
- logger.Error("starRocks:连接失败", zap.Error(err))
- return nil
- }
- // 设置连接池参数
- starRocksSqlDB, err := starRocksDB.DB()
- if err != nil {
- logger.Error("starRocks:连接失败", zap.Error(err))
- return nil
- } else {
- // 链接成功打印日志
- logger.Info("starRocks:连接成功")
- }
- starRocksSqlDB.SetMaxIdleConns(global.App.Config.Database.StarRocks.MaxIdleConns) // 设置最大空闲连接数
- starRocksSqlDB.SetMaxOpenConns(global.App.Config.Database.StarRocks.MaxOpenConns) // 设置最大连接数
- starRocksSqlDB.SetConnMaxLifetime(0) // 设置了连接可复用的最大时间
- // 将数据库实例赋值给全局变量
- return starRocksDB
- }
|