MySQL group replication MGR 单主/多主模式搭建

实例规划
在一台主机上初始化三个MySQL实例,端口分别为3306,3307,3308,以3306为写入主库,其余两个实例为read-only。
以下演示过程为单主模式搭建,但多主模式操作步骤基本一致,只是比单主模式在my.cnf中多了以下两个参数:

loose-group_replication_single_primary_mode = off  #关闭单主模式的参数
loose-group_replication_enforce_update_everywhere_checks = on #开启多主模式的参数

1.配置文件
各实例配置文件如下

[root@master ~]# cat /etc/my.cnf1
[mysql]
user=root
password=sam123
socket=/usr/local/mysql/mysql1.sock
port=3306

[client]
socket=/usr/local/mysql/mysql1.sock

[mysqld]
#soft setting#
basedir=/usr/local/mysql
pid-file=/usr/local/mysql/mysql1.pid
socket=/usr/local/mysql/mysql1.sock
log-error=/mysqlLog/logs1/error.log

#server setting#
server_id=128
port=3306
user=mysql
datadir=/mysqlData/data1
tmpdir=/mysqlData/tmp1
default_storage_engine=innodb

#undo setting#
innodb_undo_directory=/mysqlData/undo1
innodb_undo_tablespaces=2

#binlog setting#
log-bin=/mysqlLog/logs1/mysql-bin
log-bin-index=/mysqlLog/logs1/mysql-bin.index

#group replication
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE

log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="29ff7ba4-7c68-11e9-8d6b-000c2999b048"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:3406"
loose-group_replication_group_seeds= "127.0.0.1:3406,127.0.0.1:3407,127.0.0.1:3408"
loose-group_replication_bootstrap_group=off
[root@master ~]# 
[root@master ~]# 
[root@master ~]# 
[root@master ~]# cat /etc/my.cnf2 
[mysql]
user=root
password=sam123
socket=/usr/local/mysql/mysql2.sock
port=3307

[client]
socket=/usr/local/mysql/mysql2.sock

[mysqld]
#soft setting#
basedir=/usr/local/mysql
pid-file=/usr/local/mysql/mysql2.pid
socket=/usr/local/mysql/mysql2.sock
log-error=/mysqlLog/logs2/error.log

#server setting#
server_id=129
port=3307
user=mysql
datadir=/mysqlData/data2
tmpdir=/mysqlData/tmp2
default_storage_engine=innodb

#undo setting#
innodb_undo_directory=/mysqlData/undo2
innodb_undo_tablespaces=2

#binlog setting#
log-bin=/mysqlLog/logs2/mysql-bin
log-bin-index=/mysqlLog/logs2/mysql-bin.index

#group replication
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE

log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="29ff7ba4-7c68-11e9-8d6b-000c2999b048"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:3407"
loose-group_replication_group_seeds= "127.0.0.1:3406,127.0.0.1:3407,127.0.0.1:3408"
loose-group_replication_bootstrap_group=off
[root@master ~]# 
[root@master ~]# 
[root@master ~]# 
[root@master ~]# cat /etc/my.cnf3
[mysql]
user=root
password=sam123
socket=/usr/local/mysql/mysql3.sock
port=3308

[client]
socket=/usr/local/mysql/mysql3.sock

[mysqld]
#soft setting#
basedir=/usr/local/mysql
pid-file=/usr/local/mysql/mysql3.pid
socket=/usr/local/mysql/mysql3.sock
log-error=/mysqlLog/logs3/error.log

#server setting#
server_id=130
port=3308
user=mysql
datadir=/mysqlData/data3
tmpdir=/mysqlData/tmp3
default_storage_engine=innodb

#undo setting#
innodb_undo_directory=/mysqlData/undo3
innodb_undo_tablespaces=2

#binlog setting#
log-bin=/mysqlLog/logs3/mysql-bin
log-bin-index=/mysqlLog/logs3/mysql-bin.index

#group replication
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE

log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="29ff7ba4-7c68-11e9-8d6b-000c2999b048"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:3408"
loose-group_replication_group_seeds= "127.0.0.1:3406,127.0.0.1:3407,127.0.0.1:3408"
loose-group_replication_bootstrap_group=off

参数解释:
开启MGR,必须包含以下参数:

server_id=128
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW

transaction_write_set_extraction设置write_set的哈希算法,write_set功能用于MGR实例之间的数据检验;
loose-group_replication_group_name定义一个group name,必须是uuid的格式,可以自定义;
loose-group_replication_start_on_boot=OFF禁止实例启动时自动开启组复制;
loose-group_replication_local_address配置当前实例的IP和组复制内部交流的端口,各组员之间的端口要区别开来;
loose-group_replication_group_seeds设置种子成员,即将来组成员各自的IP和组复制内部交流的端口,包括本实例;
loose-group_replication_bootstrap_group=OFF关闭引导组复制;

2.实例初始化
mysqld --defaults-file=/etc/my.cnf1 --initialize --user=mysql
mysqld --defaults-file=/etc/my.cnf2 --initialize --user=mysql
mysqld --defaults-file=/etc/my.cnf3 --initialize --user=mysql
mysqld_safe --defaults-file=/etc/my.cnf1 --user=mysql &
mysqld_safe --defaults-file=/etc/my.cnf2 --user=mysql &
mysqld_safe --defaults-file=/etc/my.cnf3 --user=mysql &

3.登录3306实例,创建复制用户

[root@master ~]# mysql -uroot -psam123 -S /usr/local/mysql/mysql1.sock
my
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值