MySQL 1主2从增强半同步复制架构 转向 MGR+MySQL
2020-04-24 本文已影响0人
芒果之夏
1. master停半同步
- 停半同步,方便后面停从库,使master业务不受影响
mysql -uroot -p -S /tmp/mysql3306.sock
set global rpl_semi_sync_master_enabled=0;
2. master建MGR集群(master主机名为:db211,slave主机名:db212、db213)
-
建用户(master及所有slave均做这步):
set sql_log_bin=0;
set global super_read_only=0;
set global read_only=0;
create user 'repl'@'%' identified by 'a';
grant all on *.* to 'repl'@'%' with grant option;
set sql_log_bin=1; -
建MGR集群
mysqlsh -urepl -pa -P3306 -hdb211
var c = dba.createCluster("myCluster")
3. 停slave
- 两台从库都停止同步
stop slave;
4. 添加slave到MGR集群
- 基于mysqlshel操作
mysqlsh -urepl -pa -P3306 -hdb211
var c = dba.getCluster("myCluster")
c.addInstance('repl@db212:3306')
c.addInstance('repl@db213:3306')
5. 查看状态
- 基于mysqlshel操作
c.status()
6. 做路由
- 初始化mysqlrouter
[root@db211 ~]# mysqlrouter -B repl@db211:3306 --directory=/data/mysql/mysqlrouter6033/ -u root --force
-u 这是指操作系统用户,不是数据库里的账号。
- 启动mysqlrouter
[root@db211 ~]# cd /data/mysql/mysqlrouter6033/
[root@db211 mysqlrouter6033]# ./start.sh &