package dbConnectUtil import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) // DB 数据库连接池 var DB *sql.DB // InitDB 初始化数据库连接 func InitDB(username, password, host string, port int, dbName string) (*sql.DB, error) { log.Printf("开始初始化数据库连接") dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, port, dbName) log.Printf("数据库连接参数: %s", dsn) log.Print("开始连接数据库") var err error DB, err = sql.Open("mysql", dsn) if err != nil { return DB, fmt.Errorf("数据库连接失败: %v", err) } // 测试数据库连接 err = DB.Ping() if err != nil { return DB, fmt.Errorf("数据库连接测试失败: %v", err) } // 设置连接池参数 DB.SetMaxOpenConns(20) DB.SetMaxIdleConns(10) return DB, nil }