34 lines
510 B
Go
34 lines
510 B
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"log"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
)
|
|
|
|
var DB *sql.DB
|
|
|
|
func Connect(dsn string) error {
|
|
if dsn == "" {
|
|
return fmt.Errorf("DB_DSN is not set")
|
|
}
|
|
|
|
conn, err := sql.Open("mysql", dsn)
|
|
if err != nil {
|
|
return fmt.Errorf("open db: %w", err)
|
|
}
|
|
|
|
if err := conn.Ping(); err != nil {
|
|
return fmt.Errorf("ping db: %w", err)
|
|
}
|
|
|
|
conn.SetMaxOpenConns(25)
|
|
conn.SetMaxIdleConns(10)
|
|
|
|
DB = conn
|
|
log.Println("database connected: cpone_dashboard")
|
|
return nil
|
|
}
|