From 7b729955f4e8f9f30d18768d7d7b33ed8cc55841 Mon Sep 17 00:00:00 2001 From: ti-srebot <66930949+ti-srebot@users.noreply.github.com> Date: Mon, 11 Jul 2022 15:17:05 +0800 Subject: [PATCH] lightning: fix ipv6 address (#35881) (#35932) 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 40b7160ed5e30..67a26fb3ab411 100644 --- a/br/pkg/lightning/common/util.go +++ b/br/pkg/lightning/common/util.go @@ -21,9 +21,11 @@ import ( "encoding/json" "fmt" "io" + "net" "net/http" "net/url" "os" + "strconv" "strings" "syscall" "time" @@ -57,8 +59,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 cb13a10db9d5d..c7c95b44f69bf 100644 --- a/br/pkg/lightning/common/util_test.go +++ b/br/pkg/lightning/common/util_test.go @@ -99,6 +99,9 @@ func TestToDSN(t *testing.T) { }, } require.Equal(t, "root:123456@tcp(127.0.0.1:4000)/?charset=utf8mb4&sql_mode='strict'&maxAllowedPacket=1234&tls=cluster&tidb_distsql_scan_concurrency='1'", param.ToDSN()) + + param.Host = "::1" + require.Equal(t, "root:123456@tcp([::1]:4000)/?charset=utf8mb4&sql_mode='strict'&maxAllowedPacket=1234&tls=cluster&tidb_distsql_scan_concurrency='1'", param.ToDSN()) } type mockDriver struct {