github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/mysql/database.go (about) 1 package mysql 2 3 import ( 4 "fmt" 5 "os" 6 "time" 7 8 "github.com/artisanhe/gorm" 9 ) 10 11 func connectMysql(conn string, poolSize int, maxLifetime time.Duration) (*gorm.DB, error) { 12 database, err := gorm.Open("mysql", conn) 13 if err != nil { 14 return nil, err 15 } 16 17 database.DB().SetMaxOpenConns(poolSize) 18 database.DB().SetMaxIdleConns(poolSize / 2) 19 database.DB().SetConnMaxLifetime(maxLifetime) 20 database.SingularTable(true) 21 database.LogMode(true) 22 23 err = database.DB().Ping() 24 if err != nil { 25 fmt.Fprintf(os.Stderr, "connect mysql failed[%s]\n", err) 26 return nil, err 27 } 28 29 return &database, nil 30 }