50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
|
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
|
|||
|
}
|