From 91f4ca2a827c679f1d6e7d2c26559f375f70c940 Mon Sep 17 00:00:00 2001 From: ti-srebot <66930949+ti-srebot@users.noreply.github.com> Date: Mon, 11 Jul 2022 15:41:05 +0800 Subject: [PATCH] lightning: fix ipv6 address (#35881) (#35930) close pingcap/tidb#35880 --- br/pkg/lightning/common/util.go | 7 +++++-- br/pkg/lightning/common/util_test.go | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/br/pkg/lightning/common/util.go b/br/pkg/lightning/common/util.go index f8345b22e6500..32007eb004105 100644 --- a/br/pkg/lightning/common/util.go +++ b/br/pkg/lightning/common/util.go @@ -20,9 +20,11 @@ import ( "encoding/json" "fmt" "io" + "net" "net/http" "net/url" "os" + "strconv" "strings" "syscall" "time" @@ -53,8 +55,9 @@ type MySQLConnectParam struct { } func (param *MySQLConnectParam) ToDSN() string { - dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/?charset=utf8mb4&sql_mode='%s'&maxAllowedPacket=%d&tls=%s", - param.User, param.Password, param.Host, param.Port, + hostPort := net.JoinHostPort(param.Host, strconv.Itoa(param.Port)) + dsn := fmt.Sprintf("%s:%s@tcp(%s)/?charset=utf8mb4&sql_mode='%s'&maxAllowedPacket=%d&tls=%s", + param.User, param.Password, hostPort, param.SQLMode, param.MaxAllowedPacket, param.TLS) for k, v := range param.Vars { diff --git a/br/pkg/lightning/common/util_test.go b/br/pkg/lightning/common/util_test.go index 60812841ff259..f23a11238c203 100644 --- a/br/pkg/lightning/common/util_test.go +++ b/br/pkg/lightning/common/util_test.go @@ -92,6 +92,9 @@ func (s *utilSuite) TestToDSN(c *C) { }, } c.Assert(param.ToDSN(), Equals, "root:123456@tcp(127.0.0.1:4000)/?charset=utf8mb4&sql_mode='strict'&maxAllowedPacket=1234&tls=cluster&tidb_distsql_scan_concurrency=1") + + param.Host = "::1" + c.Assert(param.ToDSN(), Equals, "root:123456@tcp([::1]:4000)/?charset=utf8mb4&sql_mode='strict'&maxAllowedPacket=1234&tls=cluster&tidb_distsql_scan_concurrency=1") } func (s *utilSuite) TestIsContextCanceledError(c *C) {