40 lines
946 B
Go
40 lines
946 B
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
"github.com/go-ini/ini"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
"gorm.io/driver/mysql"
|
|
)
|
|
|
|
var DB *gorm.DB
|
|
|
|
func init() {
|
|
cfgs, err := ini.Load("conf/db.ini")
|
|
if err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
section := cfgs.Section("mysql")
|
|
user := section.Key("user").Value()
|
|
password := section.Key("password").Value()
|
|
host := section.Key("host").Value()
|
|
port , _ := section.Key("port").Int()
|
|
database := section.Key("database").Value()
|
|
|
|
constr := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", user, password, host, port, database)
|
|
fmt.Println(constr)
|
|
DB, err = gorm.Open(mysql.Open(constr), &gorm.Config{})
|
|
sqlDB, _ := DB.DB()
|
|
// 5秒内连接没有活跃的话则自动关闭连接
|
|
sqlDB.SetConnMaxLifetime(time.Second * 5)
|
|
|
|
DB.Logger = logger.Default.LogMode(logger.Silent)
|
|
if err != nil {
|
|
panic(err)
|
|
} else {
|
|
fmt.Println("数据库初始化成功...")
|
|
}
|
|
} |