Skip to content

Commit e409705

Browse files
author
ffffwh
committed
use UTC timestamp #957
1 parent 6f20972 commit e409705

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

Diff for: driver/mysql/binlog/binlog_reader.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,8 @@ func NewBinlogReader(
253253
HeartbeatPeriod: 3 * time.Second,
254254
ReadTimeout: 12 * time.Second,
255255

256-
ParseTime: false, // must be false, or gencode will complain.
256+
ParseTime: false, // must be false, or gencode will complain.
257+
TimestampStringLocation: time.UTC,
257258

258259
MemLimitSize: int64(g.MemAvailable / 5),
259260
MemLimitSeconds: 2,

Diff for: driver/mysql/extractor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ func (e *Extractor) initDBConnections() (err error) {
737737
}
738738
}
739739
// https://github.com/go-sql-driver/mysql#system-variables
740-
dumpUri := fmt.Sprintf("%s&%s='REPEATABLE-READ'", e.mysqlContext.SrcConnectionConfig.GetSingletonDBUri(),
740+
dumpUri := fmt.Sprintf("%s&%s='REPEATABLE-READ'", e.mysqlContext.SrcConnectionConfig.GetDBUri(),
741741
getTxIsolationVarName(e.mysqlVersionDigit))
742742
if e.singletonDB, err = sql.CreateDB(dumpUri); err != nil {
743743
return err

Diff for: driver/mysql/mysqlconfig/connection.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ package mysqlconfig
88

99
import (
1010
"fmt"
11+
"net/url"
1112
)
1213

14+
// insert TIMESTAMP in UTC
15+
var utcTimeZoneQueryStr = fmt.Sprintf("time_zone=%v", url.QueryEscape("'+00:00'"))
16+
1317
// ConnectionConfig is the minimal configuration required to connect to a MySQL server
1418
type ConnectionConfig struct {
1519
Host string
@@ -19,19 +23,14 @@ type ConnectionConfig struct {
1923
Charset string
2024
}
2125

22-
func (c *ConnectionConfig) GetDBUriByDbName(databaseName string) string {
23-
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%v&maxAllowedPacket=0", c.User, c.Password, c.Host, c.Port, databaseName, c.Charset)
24-
}
25-
2626
func (c *ConnectionConfig) GetDBUri() string {
27-
if "" == c.Charset {
27+
if c.Charset == "" {
2828
c.Charset = "utf8mb4"
2929
}
30-
return fmt.Sprintf("%s:%s@tcp(%s:%d)/?timeout=5s&tls=false&autocommit=true&charset=%v&multiStatements=true&maxAllowedPacket=0", c.User, c.Password, c.Host, c.Port, c.Charset)
31-
}
3230

33-
func (c *ConnectionConfig) GetSingletonDBUri() string {
34-
return fmt.Sprintf("%s:%s@tcp(%s:%d)/?timeout=5s&tls=false&autocommit=false&charset=%v&multiStatements=true&maxAllowedPacket=0", c.User, c.Password, c.Host, c.Port, c.Charset)
31+
return fmt.Sprintf("%s:%s@tcp(%s:%d)/?timeout=5s&tls=false&autocommit=true&charset=%v&%v&%v&%v",
32+
c.User, c.Password, c.Host, c.Port, c.Charset, utcTimeZoneQueryStr,
33+
"multiStatements=true", "maxAllowedPacket=0")
3534
}
3635

3736
func (c *ConnectionConfig) GetAddr() string {

0 commit comments

Comments
 (0)