diff --git a/internal/web/actions/default/setup/detectDB.go b/internal/web/actions/default/setup/detectDB.go index 2c113cbf..46d6303b 100644 --- a/internal/web/actions/default/setup/detectDB.go +++ b/internal/web/actions/default/setup/detectDB.go @@ -26,40 +26,44 @@ func (this *DetectDBAction) RunPost(params struct{}) { var localPassword = "" // 本地的3306端口是否可以连接 - conn, err := net.DialTimeout("tcp", "127.0.0.1:3306", 3*time.Second) - if err == nil { - _ = conn.Close() - localHost = "127.0.0.1" - localPort = "3306" + for _, tryingHost := range []string{"127.0.0.1", "localhost", "172.20.0.2"} { + conn, dialErr := net.DialTimeout("tcp", tryingHost+":3306", 3*time.Second) + if dialErr == nil { + _ = conn.Close() + localHost = tryingHost + localPort = "3306" - var username = "root" - var passwords = []string{"", "123456", "654321", "Aa_123456", "111111"} + var username = "root" + var passwords = []string{"", "123456", "654321", "Aa_123456", "111111"} - // 使用 foolish-mysql 安装的MySQL - localGeneratedPasswordData, err := os.ReadFile("/usr/local/mysql/generated-password.txt") - if err == nil { - var localGeneratedPassword = strings.TrimSpace(string(localGeneratedPasswordData)) - if len(localGeneratedPassword) > 0 { - passwords = append(passwords, localGeneratedPassword) - } - } - - for _, pass := range passwords { - db, err := dbs.NewInstanceFromConfig(&dbs.DBConfig{ - Driver: "mysql", - Dsn: username + ":" + pass + "@tcp(" + configutils.QuoteIP(localHost) + ":" + localPort + ")/edges", - Prefix: "", - }) + // 使用 foolish-mysql 安装的MySQL + localGeneratedPasswordData, err := os.ReadFile("/usr/local/mysql/generated-password.txt") if err == nil { - err = db.Raw().Ping() - _ = db.Close() - - if err == nil || strings.Contains(err.Error(), "Error 1049") { - localUsername = username - localPassword = pass - break + var localGeneratedPassword = strings.TrimSpace(string(localGeneratedPasswordData)) + if len(localGeneratedPassword) > 0 { + passwords = append(passwords, localGeneratedPassword) } } + + for _, pass := range passwords { + db, err := dbs.NewInstanceFromConfig(&dbs.DBConfig{ + Driver: "mysql", + Dsn: username + ":" + pass + "@tcp(" + configutils.QuoteIP(localHost) + ":" + localPort + ")/edges", + Prefix: "", + }) + if err == nil { + err = db.Raw().Ping() + _ = db.Close() + + if err == nil || strings.Contains(err.Error(), "Error 1049") { + localUsername = username + localPassword = pass + break + } + } + } + + break } }