remote-task-excutor-cli/pkg/storage/mysql.go

30 lines
518 B
Go

package storage
import (
"database/sql"
"fmt"
"time"
_ "github.com/go-sql-driver/mysql"
)
func NewMySQL(dsn string) (*sql.DB, error) {
if dsn == "" {
return nil, fmt.Errorf("mysql dsn is empty")
}
db, err := sql.Open("mysql", dsn)
if err != nil {
return nil, err
}
// 基本连接池配置(可后续放到配置里)
db.SetMaxOpenConns(50)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(30 * time.Minute)
if err := db.Ping(); err != nil {
_ = db.Close()
return nil, err
}
return db, nil
}