From 4780f536474365e0750501a366efb8eb83a0488d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl> Date: Wed, 20 Nov 2024 10:10:33 +0100 Subject: [PATCH 1/5] Update README --- README.md | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ba1813a0b..c9b47db34 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,33 @@ # go-mysql -A pure go library to handle MySQL network protocol and replication. +A pure go library to handle MySQL network protocol and replication as used by MySQL and MariaDB.    - -## How to migrate to this repo -To change the used package in your repo it's enough to add this `replace` directive to your `go.mod`: -``` -replace github.com/siddontang/go-mysql => github.com/go-mysql-org/go-mysql v1.10.0 -``` - -v1.10.0 - is the last tag in repo, feel free to choose what you want. +[](https://pkg.go.dev/github.com/go-mysql-org/go-mysql) ## Changelog This repo uses [Changelog](CHANGELOG.md). --- # Content -* [Replication](#replication) -* [Incremental dumping](#canal) -* [Client](#client) -* [Fake server](#server) -* [database/sql like driver](#driver) +* [Replication](#replication) - Process events from a binlog stream. +* [Incremental dumping](#canal) - Sync from MySQL to Redis, Elasticsearch, etc. +* [Client](#client) - Simple MySQL client. +* [Fake server](#server) - server side of the MySQL protocol, as library. +* [database/sql like driver](#driver) - An alternative `database/sql` driver for MySQL. +* [Migration](#how-to-migrate-to-this-repo) - Information for how to migrate if you used the old location of this project. + +## Examples + +The `cmd` directory contains example applications that can be build by running `make build` in the root of the project. The resulting binaries will be places in `bin/`. + +- `go-binlogparser` +- `go-canal` +- `go-mysqlbinlog` +- `go-mysqldump` +- `go-mysqlserver` ## Replication @@ -492,6 +496,14 @@ func main() { We pass all tests in https://github.com/bradfitz/go-sql-test using go-mysql driver. :-) +## How to migrate to this repo +To change the used package in your repo it's enough to add this `replace` directive to your `go.mod`: +``` +replace github.com/siddontang/go-mysql => github.com/go-mysql-org/go-mysql v1.10.0 +``` + +v1.10.0 - is the last tag in repo, feel free to choose what you want. + ## Donate If you like the project and want to buy me a cola, you can through: From 9fa73737281361ac35b6858db255b5835be141ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl> Date: Wed, 20 Nov 2024 10:20:14 +0100 Subject: [PATCH 2/5] Update example about GTID --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c9b47db34..54b8cabcb 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,10 @@ syncer := replication.NewBinlogSyncer(cfg) streamer, _ := syncer.StartSync(mysql.Position{binlogFile, binlogPos}) // or you can start a gtid replication like +// gtidSet, _ := mysql.ParseGTIDSet(mysql.MySQLFlavor, "de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2") // streamer, _ := syncer.StartSyncGTID(gtidSet) -// the mysql GTID set likes this "de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2" -// the mariadb GTID set likes this "0-1-100" +// the mysql GTID set is like this "de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2" and uses mysql.MySQLFlavor +// the mariadb GTID set is like this "0-1-100" and uses mysql.MariaDBFlavor for { ev, _ := streamer.GetEvent(context.Background()) From 93870c2a28b338d2473b0e0e2719b29b220e92fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl> Date: Wed, 20 Nov 2024 10:33:28 +0100 Subject: [PATCH 3/5] Add description to examples --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 54b8cabcb..f19fd913f 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,11 @@ This repo uses [Changelog](CHANGELOG.md). The `cmd` directory contains example applications that can be build by running `make build` in the root of the project. The resulting binaries will be places in `bin/`. -- `go-binlogparser` -- `go-canal` -- `go-mysqlbinlog` -- `go-mysqldump` -- `go-mysqlserver` +- `go-binlogparser`: parses a binlog file at a given offset +- `go-canal`: streams binlog events from a server to canal +- `go-mysqlbinlog`: streams binlog events +- `go-mysqldump`: like `mysqldump`, but in Go +- `go-mysqlserver`: fake MySQL server ## Replication From fd91ece433ad3a06f54f4db71ca87238a5eb6f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl> Date: Wed, 20 Nov 2024 10:44:40 +0100 Subject: [PATCH 4/5] Add 'go mod edit' line --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f19fd913f..5337b3b94 100644 --- a/README.md +++ b/README.md @@ -503,6 +503,11 @@ To change the used package in your repo it's enough to add this `replace` direct replace github.com/siddontang/go-mysql => github.com/go-mysql-org/go-mysql v1.10.0 ``` +This can be done by running this command: +``` +go mod edit -replace=github.com/siddontang/go-mysql=github.com/go-mysql-org/go-mysql@v1.10.0 +``` + v1.10.0 - is the last tag in repo, feel free to choose what you want. ## Donate From 6e48ab4271217ad4d7bbbd99d357975ad9293793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl> Date: Thu, 21 Nov 2024 07:10:33 +0100 Subject: [PATCH 5/5] Remove donate and feedback sessions, add credits --- README.md | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 5337b3b94..3176e0819 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ Query: DROP TABLE IF EXISTS `test_replication` /* generated by server */ ## Canal -Canal is a package that can sync your MySQL into everywhere, like Redis, Elasticsearch. +Canal is a package that can sync your MySQL into everywhere, like Redis, Elasticsearch. First, canal will dump your MySQL data then sync changed data using binlog incrementally. @@ -165,7 +165,7 @@ func main() { } ``` -You can see [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) for how to sync MySQL data into Elasticsearch. +You can see [go-mysql-elasticsearch](https://github.com/go-mysql-org/go-mysql-elasticsearch) for how to sync MySQL data into Elasticsearch. ## Client @@ -510,17 +510,6 @@ go mod edit -replace=github.com/siddontang/go-mysql=github.com/go-mysql-org/go-m v1.10.0 - is the last tag in repo, feel free to choose what you want. -## Donate +## Credits -If you like the project and want to buy me a cola, you can through: - -|PayPal|微信| -|------|---| -|[](https://paypal.me/siddontang)|[| - -## Feedback - -go-mysql is still in development, your feedback is very welcome. - - -Gmail: siddontang@gmail.com +go-mysql was started by @siddontang and has many [contributors](https://github.com/go-mysql-org/go-mysql/graphs/contributors)