1、 创建三个数据库实例
mkdir /data/mysql/sock mkdir –p /data/mysql/data/{s1,s2,s3} mkdir /data/mysql/cnf mkdir –p /data/mysql/logs/{s1,s2,s3} cd /data/mysql chown -R mysql:mysql * cd /usr/local/mysql/ chown -R mysql:mysql * bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/data/s1 bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/data/s2 bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/data/s3
2、 配置第一个节点
[mysqld] #Server Configuration basedir=/usr/local/mysql datadir=/data/mysql/data/s1 port = 24801 socket = /data/mysql/sock/s1.sock #Replication Framework 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=/data/mysql/logs/s1/binlog binlog_format=ROW relay-log=/data/mysql/logs/s1/relay-bin #Group Replication transaction_write_set_extraction=XXHASH64 loose- group_replication_group_name="b4668cea-d7ca-11e6-86b5-18a99b76310d" loose- group_replication_start_on_boot=off loose- group_replication_local_address= "127.0.0.1:24901" loose- group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" loose- group_replication_bootstrap_group= off loose- group_replication_single_primary_mode=FALSE loose- group_replication_enforce_update_everywhere_checks= TRUE
参数配置中除了如下参数在各节点不一样外,其他配置都一样:datadir、port、socket、server_id、log_bin、relay-log、loose- group_replication_local_address
3、启动第一个节点
cd /usr/local/mysql/ sudo chown -R mysql:mysql * ln -s /usr/local/mysql/bin/mysql /usr/bin /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/cnf/s1.cnf
4、登录第一个节点
mysql -h127.0.0.1 -P24801 -uroot --skip-password #登录后修改默认密码 SET PASSWORD = PASSWORD('root'); flush privileges;
5、创建group replication所需要的用户
SET SQL_LOG_BIN=0; CREATE USER rpl_user@'%'; GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'; FLUSH PRIVILEGES; SET SQL_LOG_BIN=1; CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery';
6、开启组复制
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so'; Query OK, 0 rows affected (0.05 sec) mysql> SHOW PLUGINS; +----------------------------+----------+--------------------+ | Name | Status | Type | +----------------------------+----------+--------------------+ | binlog | ACTIVE | STORAGE ENGINE | ... | group_replication | ACTIVE | GROUP REPLICATION | +----------------------------+----------+--------------------+ 45 rows in set (0.02 sec)
7、启动group replication
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF; #查看组复制是否启动成功 SELECT * FROM performance_schema.replication_group_members;
8、配置第二个节点(仅列出和s1的不同之处)
datadir=/data/mysql/data/s2 port = 24802 socket = /data/mysql/sock/s2.sock server_id=2 log_bin=/data/mysql/logs/s2/binlog relay-log=/data/mysql/logs/s2/relay-bin loose-group_replication_local_address= "127.0.0.1:24902"
9、启动第二个节点(实例)
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/cnf/s2.cnf
10、登录第二个节点并修改默认密码
mysql -h127.0.0.1 -P24802 -uroot --skip-password SET PASSWORD = PASSWORD('root'); flush privileges;
11、配置group replication需要的用户
SET SQL_LOG_BIN=0; CREATE USER rpl_user@'%'; GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'; FLUSH PRIVILEGES; SET SQL_LOG_BIN=1; CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery';
12、安装group replication插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; Show plugins; +----------------------------+----------+--------------------+ | Name | Status | Type | +----------------------------+----------+--------------------+ | binlog | ACTIVE | STORAGE ENGINE | ... | group_replication | ACTIVE | GROUP REPLICATION | +----------------------------+----------+--------------------+ 45 rows in set (0.02 sec)
13、将s2添加到组中
set global group_replication_allow_local_disjoint_gtids_join=ON; start group_replication; #查看改group replication情况 SELECT * FROM performance_schema.replication_group_members;
14、添加第三个节点
操作同第二个节点,s3.cnf的参数略有不同 #添加完成查看各节点的运行状态 SELECT * FROM performance_schema.replication_group_members;
参考资料:
卸载mysql:http://www.cnblogs.com/kerrycode/p/4364465.html
MySQL Group Replication: http://mysqlhighavailability.com/mysqlha/gr/doc/getting_started.html
相关推荐
本手册将指导您如何在单机上搭建MySQL 5.7.17的Group Replication环境。 首先,确保您具备使用二进制发行版安装MySQL的经验,因为这个过程涉及到多个实例的安装。基础环境是CentOS 6.x 64位操作系统,您需要下载...
MySQL Group Replication 是 Oracle 公司为 MySQL 数据库提供的一项高级复制技术,旨在通过多成员组的架构来提高数据库系统的可用性和性能。这项技术允许数据在多个服务器之间同步,不仅支持读写负载均衡,还能在...
MySQL Group Replication是高可用性和水平可扩展性的关键组件,通过它可以让数据分布在多个数据库实例中,从而在任一节点发生故障时,系统仍能保持高可用性,并进行故障自动转移。 在具体操作层面上,自动安装配置...
在配置Group Replication之前,你需要在一台主机上安装并运行至少三个MySQL实例,它们将共同组成一个组。每个实例都有自己的配置文件,例如 `/tmp/4406.cnf`,其中包含特定的参数设置。以下是一些关键配置项的解释:...
配置MySQL Group Replication相对简单,特别是与传统的异步GTID(Global Transaction Identifier)设置相比。它还提供了内置的成员资格服务,能实时更新和维护组内的服务器视图,允许服务器随时加入或离开组,而不会...
MGR,全称为Group Replication,是MySQL的一种多主复制技术,允许数据在集群中的多个节点间进行实时同步,确保数据的一致性和高可用性。在这个过程中,我们将探讨如何配置和管理MySQL Group Replication集群。 首先...
1. 配置每个MySQL实例的`server_id`和Group Replication参数。 2. 启动每个MySQL实例上的Group Replication。 3. 使用MySQL Shell连接到任一节点,并使用AdminAPI进行双主模式的配置。 以上所述的各种配置方式,都...
根据提供的文档内容,本文将详细解析如何安装与配置MySQL 5.7的Single-Primary Group Replication(简称GR,即组复制)。此文档主要聚焦于MySQL 5.7版本下的单主模式组复制的安装与配置流程,适用于分布式环境中需要...
4. **MySQL Server实例**: 集群由多个MySQL Server实例组成,每个实例都是Group Replication的一部分,它们之间通过网络进行通信并保持数据同步。 InnoDB Cluster的主要优点包括: - **自动故障恢复**: 当集群中的...
本文将详细介绍如何利用自动化运维工具Ansible实现MySQL数据库的快速安装,并配置为MySQL Group Replication(MGR)模式,以此实现数据库的高可用性和自动故障转移。 首先,要了解Ansible。Ansible是一个开源的自动...
2. MGR模式:MySQL Group Replication是一种高可用性解决方案,它允许多个MySQL服务器实例共同组成一个复制组。在这个组内,所有服务器可以自动进行故障转移,并且能够对数据变更进行一致性的处理。MGR模式适合对...
5. Group Replication:MySQL 5.7引入了Group Replication,这是一种高可用性和灾难恢复解决方案,允许数据在多个节点间实时同步。 6. InnoDB Cluster:配合Group Replication,MySQL 5.7提供了InnoDB Cluster,...