package database import ( "fmt" "time" "a301_server/pkg/config" "gorm.io/driver/mysql" "gorm.io/gorm" ) func ConnectMySQL() (*gorm.DB, error) { c := config.C dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=UTC", c.DBUser, c.DBPassword, c.DBHost, c.DBPort, c.DBName, ) db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { return nil, err } sqlDB, err := db.DB() if err != nil { return nil, fmt.Errorf("sql.DB 획득 실패: %w", err) } sqlDB.SetMaxOpenConns(25) sqlDB.SetMaxIdleConns(10) sqlDB.SetConnMaxLifetime(5 * time.Minute) return db, nil }