package mydb import ( "database/sql" "fmt" "time" ) type ManageDb struct { Name string Db *sql.DB } func NewDatabase(dbName, user, password, host string, port int) (*ManageDb, error) { dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", user, password, host, port, dbName) db, err := sql.Open("mysql", dsn) db.SetConnMaxLifetime(time.Minute * 5) // 连接最大生命周期 db.SetMaxOpenConns(50) // 最大连接数 db.SetMaxIdleConns(10) // 最大空闲连接数 if err != nil { return nil, err } return &ManageDb{Name: dbName, Db: db}, nil }