1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| package utils
import ( "fmt" "github.com/spf13/viper" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "log" "os" "time" )
var DB *gorm.DB
var globalLogger = logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{ SlowThreshold: time.Second, LogLevel: logger.Info, IgnoreRecordNotFoundError: false, Colorful: true, }, )
func InitMySQL() { username := viper.GetString("datasource.username") password := viper.GetString("datasource.password") host := viper.GetString("datasource.host") port := viper.GetString("datasource.port") database := viper.GetString("datasource.database") db, err := gorm.Open(mysql.New(mysql.Config{ DSN: fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", username, password, host, port, database), }), &gorm.Config{ Logger: globalLogger, }) db = db.Session(&gorm.Session{Logger: globalLogger}) if err != nil { panic(fmt.Sprintf("MySQL连接失败:%v", err)) } fmt.Println("MySQL连接成功") DB = db }
func GetMySQL() *gorm.DB { return DB }
|