diff --git a/v4/export/config.go b/v4/export/config.go index 12ef01acc54f6..bfa9bdf56b893 100644 --- a/v4/export/config.go +++ b/v4/export/config.go @@ -510,7 +510,7 @@ var ServerInfoUnknown = ServerInfo{ } var versionRegex = regexp.MustCompile(`^\d+\.\d+\.\d+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?`) -var tidbVersionRegex = regexp.MustCompile(`v\d+\.\d+\.\d+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?`) +var tidbVersionRegex = regexp.MustCompile(`-[v]?\d+\.\d+\.\d+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?`) func ParseServerInfo(src string) ServerInfo { log.Debug("parse server info", zap.String("server info string", src)) @@ -532,6 +532,7 @@ func ParseServerInfo(src string) ServerInfo { var versionStr string if serverInfo.ServerType == ServerTypeTiDB { versionStr = tidbVersionRegex.FindString(src)[1:] + versionStr = strings.TrimPrefix(versionStr, "v") } else { versionStr = versionRegex.FindString(src) } diff --git a/v4/export/sql_test.go b/v4/export/sql_test.go index d95b3150ba2a1..5abda2f9ab02f 100644 --- a/v4/export/sql_test.go +++ b/v4/export/sql_test.go @@ -24,7 +24,8 @@ func (s *testDumpSuite) TestDetectServerInfo(c *C) { {2, "10.4.10-MariaDB-1:10.4.10+maria~bionic", ServerTypeMariaDB, mkVer(10, 4, 10, "MariaDB-1")}, {3, "5.7.25-TiDB-v4.0.0-alpha-1263-g635f2e1af", ServerTypeTiDB, mkVer(4, 0, 0, "alpha-1263-g635f2e1af")}, {4, "5.7.25-TiDB-v3.0.7-58-g6adce2367", ServerTypeTiDB, mkVer(3, 0, 7, "58-g6adce2367")}, - {5, "invalid version", ServerTypeUnknown, (*semver.Version)(nil)}, + {5, "5.7.25-TiDB-3.0.6", ServerTypeTiDB, mkVer(3, 0, 6, "")}, + {6, "invalid version", ServerTypeUnknown, (*semver.Version)(nil)}, } dec := func(d []interface{}) (tag int, verStr string, tp ServerType, v *semver.Version) { return d[0].(int), d[1].(string), ServerType(d[2].(int)), d[3].(*semver.Version)