在使用Gorm连接MySQL数据库时,可以通过设置数据库连接超时时间来控制连接在无法建立时等待的时间。使用Gorm的Open方法连接数据库时,可以传入一个Options参数,其中可以设置连接超时时间和其他参数。

以下是一个示例代码:


import (
    "gorm.io/gorm"
    "gorm.io/driver/mysql"
    "time"
)
// 连接MySQL数据库
func ConnectMySQL(dbURL string) (*gorm.DB, error) {
    dsn := dbURL + "?parseTime=True&loc=Local&charset=utf8mb4&timeout=10s" // 设置超时时间10秒
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        return nil, err
    }
    
    // 设置连接池参数
    sqlDB, err := db.DB()
    if err != nil {
        return nil, err
    }
    sqlDB.SetMaxIdleConns(10)
    sqlDB.SetMaxOpenConns(100)
    sqlDB.SetConnMaxLifetime(30 * time.Minute)
   
    return db, nil
}

在dsn中设置了超时时间为10秒。如果连接建立超时,则会返回错误。同时,通过设置连接池参数,可以控制连接的最大空闲时间和最大连接数。