mysql8组复制配置,Docker部署MySQL 8的MGR组复制

# 拉取MySQL镜像

# docker pull mysql/mysql-server:8.0.16

# 创建专门的网络,连接各个容器

$ docker network create mysql_mgr

$ docker network ls

# 创建容器

for N in 1 2 3

do docker run -d --name=node$N --net=mysql_mgr --hostname=node$N \

-v $PWD/d$N:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mypass \

mysql/mysql-server:8.0.16 \

--server-id=$N \

--log-bin='mysql-bin-1.log' \

--enforce-gtid-consistency='ON' \

--log-slave-updates='ON' \

--gtid-mode='ON' \

--transaction-write-set-extraction='XXHASH64' \

--binlog-checksum='NONE' \

--master-info-repository='TABLE' \

--relay-log-info-repository='TABLE' \

--plugin-load='group_replication.so' \

--relay-log-recovery='ON' \

--group-replication-start-on-boot='OFF' \

--group-replication-group-name='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' \

--group-replication-local-address="node$N:33061" \

--group-replication-group-seeds='node1:33061,node2:33061,node3:33061' \

--loose-group-replication-single-primary-mode='OFF' \ # 如果单主模式,则设置为ON

--loose-group-replication-enforce-update-everywhere-checks='ON' # 如果单主模式,则设置为OFF

done

# 配置首节点,如:创建用户,开启组复制等

docker exec -it node1 mysql -uroot -pmypass \

-e "SET @@GLOBAL.group_replication_bootstrap_group=1;" \

-e "create user 'repl'@'%' identified by 'P@ssword1!';" \

-e "GRANT REPLICATION SLAVE ON *.* TO repl@'%';" \

-e "flush privileges;" \

-e "change master to master_user='repl', master_password='P@ssword1!' for channel 'group_replication_recovery';" \

-e "START GROUP_REPLICATION;" \

-e "SET @@GLOBAL.group_replication_bootstrap_group=0;" \

-e "SELECT * FROM performance_schema.replication_group_members;"

# 新增其他节点

for N in 2 3

do docker exec -it node$N mysql -uroot -pmypass \

-e "change master to master_user='repl', master_password='P@ssword1!' for channel 'group_replication_recovery';" \

-e "START GROUP_REPLICATION;"

done

# 验证集群是否正常

docker exec -it node1 mysql -uroot -pmypass \

-e "SELECT * FROM performance_schema.replication_group_members;"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值