fix: GORM init fix to allow special characters in connection string (#4665)

diff --git a/backend/core/runner/db.go b/backend/core/runner/db.go
index b2d4001..b5ef01b 100644
--- a/backend/core/runner/db.go
+++ b/backend/core/runner/db.go
@@ -85,7 +85,7 @@
 	var db *gorm.DB
 	switch strings.ToLower(u.Scheme) {
 	case "mysql":
-		dbUrl = fmt.Sprintf("%s@tcp(%s)%s?%s", u.User.String(), u.Host, u.Path, u.RawQuery)
+		dbUrl = fmt.Sprintf("%s@tcp(%s)%s?%s", getUserString(u), u.Host, u.Path, u.RawQuery)
 		db, err = gorm.Open(mysql.Open(dbUrl), dbConfig)
 	case "postgresql", "postgres", "pg":
 		db, err = gorm.Open(postgres.Open(dbUrl), dbConfig)
@@ -105,3 +105,12 @@
 
 	return db, errors.Convert(err)
 }
+
+func getUserString(u *url.URL) string {
+	userString := u.User.Username()
+	password, ok := u.User.Password()
+	if ok {
+		userString = fmt.Sprintf("%s:%s", userString, password)
+	}
+	return userString
+}