本文对应代码:github
用Docker部署基于GTID的MySQL Master-Slave Replication例子。
启动Master
写一个文件mysql-master.cnf:
[mysqld]
server_id=1
binlog_format=ROW
gtid_mode=ON
enforce-gtid-consistency=true
这个配置文件把Master的server_id设置为1,要注意在同一个Master-Slave集群里,server_id不能重复。
启动Master:
docker run -d --name mysql-master \
-e MYSQL_USER=my_user \
-e MYSQL_DATABASE=my_database \
-e MYSQL_PASSWORD=my_database_password \
-e MYSQL_ROOT_PASSWORD=my_root_password \
-p 3307:3306 \
-v $(pwd)/mysql-master.cnf:/etc/mysql/conf.d/mysql-master.cnf \
mysql:8.0 \
--log-bin=my
启动Slave
写一个文件mysql-slave-1.cnf:
[mysqld]
server_id=2
binlog_format=ROW
gtid_mode=ON
enforce-gtid-consistency