package corelib import ( "database/sql" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" "picgo/configs" "time" ) var ( DbMysql *gorm.DB ) // NewMysql 创建数据库连接 func NewMysql() { var ( err error db *gorm.DB sqlDB *sql.DB dsn string ) dsn = configs.Settings.Mysql.MysqlDNS if db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ // 配置日志级别,打印出所有的sql Logger: logger.Default.LogMode(logger.Info), NamingStrategy: schema.NamingStrategy{ //TablePrefix: configs.Setting.TablePrefix, // 表前缀 SingularTable: true, // 设置全局表名禁用复数 }, }); err != nil { Logger.Panicln("数据库连接失败: ", err) } if sqlDB, err = db.DB(); err != nil { Logger.Panicln("数据库连接失败: ", err) } // SetMaxIdleConns 设置空闲连接池中连接的最大数量 sqlDB.SetMaxIdleConns(configs.Settings.Mysql.MaxIdleConns) // SetMaxOpenConns 设置打开数据库连接的最大数量。 sqlDB.SetMaxOpenConns(configs.Settings.Mysql.MaxOpenConns) // SetConnMaxLifetime 设置了连接可复用的最大时间。 sqlDB.SetConnMaxLifetime(time.Hour) DbMysql = db }