Skip to content

Commit c6896ff

Browse files
committed
add example
1 parent bebe11e commit c6896ff

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

example/dump_binlog_events/main.go

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"github.com/siddontang/go-mysql/mysql"
7+
"github.com/siddontang/go-mysql/replication"
8+
"os"
9+
)
10+
11+
var host = flag.String("host", "127.0.0.1", "MySQL host")
12+
var port = flag.Int("port", 3306, "MySQL port")
13+
var user = flag.String("user", "root", "MySQL user")
14+
var password = flag.String("password", "", "MySQL password")
15+
16+
var flavor = flag.String("flavor", "mysql", "Flavor: mysql or mariadb")
17+
18+
var file = flag.String("file", "", "Binlog filename")
19+
var pos = flag.Int("pos", 4, "Binlog position")
20+
21+
func main() {
22+
flag.Parse()
23+
24+
b := replication.NewBinlogSyncer(101, *flavor)
25+
26+
if err := b.RegisterSlave(*host, uint16(*port), *user, *password); err != nil {
27+
fmt.Printf("Register slave error: %v \n", err)
28+
return
29+
}
30+
31+
s, err := b.StartSync(mysql.Position{*file, uint32(*pos)})
32+
if err != nil {
33+
fmt.Printf("Start sync error: %v\n", err)
34+
return
35+
}
36+
37+
for {
38+
e, err := s.GetEvent()
39+
if err != nil {
40+
fmt.Printf("Get event error: %v\n", err)
41+
return
42+
}
43+
44+
e.Dump(os.Stdout)
45+
}
46+
}

0 commit comments

Comments
 (0)