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  }