Skip to content

Commit 8fa99e6

Browse files
committed
adjust docker, use GTID mode default
1 parent 67bd89b commit 8fa99e6

File tree

3 files changed

+27
-43
lines changed

3 files changed

+27
-43
lines changed

docker/Makefile

+5-8
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,15 @@ IMAGE=siddontang/mysql:latest
33
all: build
44

55
build:
6-
@docker run -d -p 3306:3306 --name=mysql1 -e "GTID_MODE=off" -e "SERVER_ID=1" ${IMAGE}
7-
@docker run -d -p 3307:3306 --name=mysql2 -e "GTID_MODE=off" -e "SERVER_ID=2" ${IMAGE}
8-
@docker run -d -p 3308:3306 --name=mysql3 -e "GTID_MODE=off" -e "SERVER_ID=3" ${IMAGE}
9-
@docker run -d -p 3316:3306 --name=mysql4 -e "GTID_MODE=on" -e "SERVER_ID=4" ${IMAGE}
10-
@docker run -d -p 3317:3306 --name=mysql5 -e "GTID_MODE=on" -e "SERVER_ID=5" ${IMAGE}
11-
@docker run -d -p 3318:3306 --name=mysql6 -e "GTID_MODE=on" -e "SERVER_ID=6" ${IMAGE}
6+
@docker run -d -p 3306:3306 --name=mysql1 -e "GTID_MODE=on" -e "SERVER_ID=1" ${IMAGE}
7+
@docker run -d -p 3307:3306 --name=mysql2 -e "GTID_MODE=on" -e "SERVER_ID=2" ${IMAGE}
8+
@docker run -d -p 3308:3306 --name=mysql3 -e "GTID_MODE=on" -e "SERVER_ID=3" ${IMAGE}
129

1310
image:
1411
@docker pull ${IMAGE}
1512

1613
stop:
17-
@docker stop mysql1 mysql2 mysql3 mysql4 mysql5 mysql6
14+
@docker stop mysql1 mysql2 mysql3
1815

1916
clean:
20-
@docker rm -f mysql1 mysql2 mysql3 mysql4 mysql5 mysql6
17+
@docker rm -f mysql1 mysql2 mysql3

failover/failover_test.go

+10-13
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ import (
88
)
99

1010
// We will use go-mysql docker to test
11-
// go-mysql docker will build mysql 1-6 instances
12-
// mysql 1-3 use binlog file + position replication, port is 3306, 3307, 3308
13-
// mysql 4-6 use GTID replication, port is 3316, 3317, 3318
14-
var addr = flag.String("addr", "10.20.151.148", "go-mysql docker container address")
11+
// go-mysql docker will build mysql 1-3 instances
12+
var host = flag.String("host", "127.0.0.1", "go-mysql docker container address")
1513

1614
func Test(t *testing.T) {
1715
TestingT(t)
@@ -24,16 +22,16 @@ type failoverTestSuite struct {
2422
var _ = Suite(&failoverTestSuite{})
2523

2624
func (s *failoverTestSuite) SetUpSuite(c *C) {
27-
ports := []int{3306, 3307, 3308, 3316, 3317, 3318}
25+
ports := []int{3306, 3307, 3308}
2826

29-
s.s = make([]*Server, 6)
27+
s.s = make([]*Server, len(ports))
3028

31-
for i := 0; i < 6; i++ {
32-
s.s[i] = NewServer(fmt.Sprintf("%s:%d", *addr, ports[i]), User{"root", ""}, User{"root", ""})
29+
for i := 0; i < len(ports); i++ {
30+
s.s[i] = NewServer(fmt.Sprintf("%s:%d", *host, ports[i]), User{"root", ""}, User{"root", ""})
3331
}
3432

3533
var err error
36-
for i := 0; i < 6; i++ {
34+
for i := 0; i < len(ports); i++ {
3735
err = s.s[i].StopSlave()
3836
c.Assert(err, IsNil)
3937

@@ -57,10 +55,9 @@ func (s *failoverTestSuite) TearDownSuite(c *C) {
5755
func (s *failoverTestSuite) TestGTID(c *C) {
5856
h := new(GTIDHandler)
5957

60-
//s3 is master, s4 and s5 are s4's slave
61-
m := s.s[3]
62-
s1 := s.s[4]
63-
s2 := s.s[5]
58+
m := s.s[0]
59+
s1 := s.s[1]
60+
s2 := s.s[2]
6461

6562
var err error
6663
err = h.ChangeMasterTo(s1, m)

replication/replication_test.go

+12-22
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ var testPort = flag.Int("port", 3306, "MySQL master port")
1717
var testUser = flag.String("user", "root", "MySQL master user")
1818
var testPassword = flag.String("pass", "", "MySQL master password")
1919

20-
var testGTIDHost = flag.String("gtid_host", "127.0.0.1", "MySQL master (uses GTID) host")
21-
var testGTIDPort = flag.Int("gtid_port", 3316, "MySQL master (uses GTID) port")
22-
var testGTIDUser = flag.String("gtid_user", "root", "MySQL master (uses GTID) user")
23-
var testGITDPassword = flag.String("gtid_pass", "", "MySQL master (uses GTID) password")
24-
2520
var testOutputLogs = flag.Bool("o", true, "output binlog event")
2621

2722
func TestBinLogSyncer(t *testing.T) {
@@ -38,6 +33,9 @@ type testSyncerSuite struct {
3833
var _ = Suite(&testSyncerSuite{})
3934

4035
func (t *testSyncerSuite) SetUpSuite(c *C) {
36+
var err error
37+
t.c, err = client.Connect(fmt.Sprintf("%s:%d", *testHost, *testPort), *testUser, *testPassword, "test")
38+
c.Assert(err, IsNil)
4139
}
4240

4341
func (t *testSyncerSuite) TearDownSuite(c *C) {
@@ -48,13 +46,12 @@ func (t *testSyncerSuite) TearDownSuite(c *C) {
4846

4947
func (t *testSyncerSuite) SetUpTest(c *C) {
5048
t.b = NewBinlogSyncer(100)
49+
50+
err := t.b.RegisterSlave(*testHost, uint16(*testPort), *testUser, *testPassword)
51+
c.Assert(err, IsNil)
5152
}
5253

5354
func (t *testSyncerSuite) TearDownTest(c *C) {
54-
if t.c != nil {
55-
t.c.Close()
56-
}
57-
5855
t.b.Close()
5956
}
6057

@@ -140,13 +137,6 @@ func (t *testSyncerSuite) testSync(c *C, s *BinlogStreamer) {
140137
}
141138

142139
func (t *testSyncerSuite) TestSync(c *C) {
143-
var err error
144-
t.c, err = client.Connect(fmt.Sprintf("%s:%d", *testHost, *testPort), *testUser, *testPassword, "test")
145-
c.Assert(err, IsNil)
146-
147-
err = t.b.RegisterSlave(*testHost, uint16(*testPort), *testUser, *testPassword)
148-
c.Assert(err, IsNil)
149-
150140
//get current master binlog file and position
151141
r, err := t.c.Execute("SHOW MASTER STATUS")
152142
c.Assert(err, IsNil)
@@ -159,18 +149,18 @@ func (t *testSyncerSuite) TestSync(c *C) {
159149
}
160150

161151
func (t *testSyncerSuite) TestSyncGTID(c *C) {
162-
var err error
163-
t.c, err = client.Connect(fmt.Sprintf("%s:%d", *testGTIDHost, *testGTIDPort), *testGTIDUser, *testGITDPassword, "test")
164-
c.Assert(err, IsNil)
165-
166-
err = t.b.RegisterSlave(*testGTIDHost, uint16(*testGTIDPort), *testGTIDUser, *testGITDPassword)
152+
r, err := t.c.Execute("SELECT @@gtid_mode")
167153
c.Assert(err, IsNil)
154+
modeOn, _ := r.GetString(0, 0)
155+
if modeOn != "ON" {
156+
c.Skip("GTID mode is not ON")
157+
}
168158

169159
masterUuid, err := t.b.GetMasterUUID()
170160
c.Assert(err, IsNil)
171161

172162
set := new(mysql.GTIDSet)
173-
set.Sets = []*mysql.UUIDSet{mysql.NewUUIDSet(masterUuid, mysql.Interval{1, 2})}
163+
set.Sets = map[string]*mysql.UUIDSet{masterUuid.String(): mysql.NewUUIDSet(masterUuid, mysql.Interval{1, 2})}
174164

175165
s, err := t.b.StartSyncGTID(set)
176166
c.Assert(err, IsNil)

0 commit comments

Comments
 (0)