LAMP架构之8——MySQL分布式集群(组复制)

目录

一、mysql的分布式集群(组复制)

1、把所有节点的mysql程序停止掉

2、把所有节点的mysql数据清理一下(初始化mysql)

3、重新配置mysql

 4、在master中设置

5、在slave中设置


一、mysql的分布式集群(组复制)

组复制对配置的要求比较高,而且和之前的环境有一些差别,因此要先清理一下之前实验的环境。

1、把所有节点的mysql程序停止掉

2、把所有节点的mysql数据清理一下(初始化mysql)

3、重新配置mysql

 4、在master中设置

第一步:设置master的配置文件如下</etc/my.cfg>

disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=1
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

plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "172.25.254.1:33061"
group_replication_group_seeds= "172.25.254.1:33061,172.25.254.2:33061,172.25.254.3:33061"
group_replication_bootstrap_group=off
group_replication_ip_whitelist="172.25.0.0/24,127.0.0.1/8"
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON
group_replication_allow_local_disjoint_gtids_join=1        #表示有初始化时有新的数据加进来则丢弃本机数据

第二步:初始化mysql

mysqld --initialize --user=mysql            #初始化mysql
/etc/init.d/mysqld start                    #启动mysql

mysql >  alter user root@localhost identified by 'westos';        #更改mysql密码

 第三步:在master的mysql内部设置

mysql> SET SQL_LOG_BIN=0;                                    #禁止二进制日志
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'password';    #创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO repl_user@'%';       #授权用户访问
mysql> FLUSH PRIVILEGES;                                     #刷新数据库配置
mysql> SET SQL_LOG_BIN=1;                                    #允许二进制日志

mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';                        #设置组复制

以上设置完成后,显示所有插件,可以看到“组复制”已经添加完成。

mysql> SHOW PLUGINS;            #显示所有插件

 接着设置:

mysql> SET GLOBAL group_replication_bootstrap_group=ON;        #开启组复制引导(只需要在第一个启动节点上设置)
START GROUP_REPLICATION;                    #启动组复制插件
SET GLOBAL group_replication_bootstrap_group=OFF;            #关闭组复制引导

设置完成后检查:

SELECT * FROM performance_schema.replication_group_members;

5、在slave中设置

第一步:更改配置文件</etc/my.cnf>。和master中一模一样,只是需要注意序号。server2和server3两个slave的序号分别为2和3。

第二步:初始化mysql(操作步骤同上)

第三步:在slave的mysql内部设置(操作步骤同上)

注意:与第一个节点不同的地方是,这一步只需要启动组复制插件即可,不需要启动组复制引导!!!!!

#和master相比,仅执行这一步
START GROUP_REPLICATION;                    #启动组复制插件

 另外两个slave节点添加完成后,查询总共可以查询到三个节点已经并联起来了

 第四步:测试

在server1中创建表

在server2中查看信息以同步,并插入新数据

 在server3中查看信息已同步,并插入新数据

 在server1中查看从其他节点可以查到同步过来的信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值