`
hbxflihua
  • 浏览: 690569 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL Group Replication 多机多实例安装配置

阅读更多

1、配置hosts

 

172.16.90.39 node3-01 node3-01.novalocal
172.16.90.40 node3-02 node3-02.novalocal
172.16.90.41 node3-03 node3-03.novalocal

 

 

2、在每个节点上创建数据库实例

 

mkdir -p /data/mysql/{data,logs}
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/

 

 

3、配置第一个节点:/etc/my.cnf

 

[mysqld]
#Server Configuration
basedir=/usr/local/mysql
datadir=/data/mysql/data
port = 3306
socket = /usr/local/mysql/mysql.sock
user=mysql


#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/binlog
binlog_format=ROW 
binlog_row_image=minimal
relay-log=/data/mysql/logs/relay-bin

#Group Replication
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="0374cfa3-deae-11e6-b0fe-fa163e2d23ab"       
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "node3-01:24901"
loose-group_replication_group_seeds= "node3-01:24901,node3-02:24901,node3-03:24901"
loose-group_replication_bootstrap_group= off
loose-group_replication_single_primary_mode=FALSE
loose-group_replication_enforce_update_everywhere_checks= TRUE

 参数配置中除了如下的参数在各节点不一样外,其他配置都一样:server_id、loose- group_replication_local_address

 

 

4、启动第一个节点

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

 

5、登录第一个节点

mysql -h127.0.0.1 -P3306 -uroot --skip-password
#登录后修改默认密码
SET PASSWORD = PASSWORD('root');
flush privileges;

 

6、创建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';

 

7、安装组复制插件

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)

 

8、启动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;

 

9、配置第二个节点(仅列出和s1的不同之处)

server_id=2
loose-group_replication_local_address= "db2:24901"

 

10、启动第二个节点(实例)

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

 

11、登录第二个节点并修改默认密码

mysql -h127.0.0.1 -P3306 -uroot --skip-password
SET PASSWORD = PASSWORD('root');
flush privileges;

 

12、配置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';

 

13、安装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)

 

14、将s2添加到组中

set global group_replication_allow_local_disjoint_gtids_join=ON;
start group_replication;
#查看改group replication情况
SELECT * FROM performance_schema.replication_group_members;

 

15、添加第三个节点

#操作同第二个节点,my.cnf的参数略有不同
#添加完成查看各节点的运行状态
SELECT * FROM performance_schema.replication_group_members;

 

16、主从模式(single-primary)下的配置

主从(单主)模式的相关配置除了下面两个配置外,其他和多主都相同

loose-group_replication_single_primary_mode=TRUE
loose-group_replication_enforce_update_everywhere_checks=FALSE

 

17、主从下查看primary_member

SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member';

 

18、mysql在java中的连接配置

多主模式:loadbalance
jdbc.url=jdbc:mysql:loadbalance://172.16.90.39:3306,172.16.90.40:3306,172.16.90.41:3306/ifaes_test?loadBalanceBlacklistTimeout=5000&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
主从模式:replication
jdbc.url=jdbc:mysql:replication://172.16.90.39:3306,172.16.90.40:3306,172.16.90.41:3306/ifaes_test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

 

分享到:
评论

相关推荐

    MySQL Group Replication环境搭建实战手册

    MySQL Group Replication是一种高可用性和高可扩展性的解决方案,它允许在MySQL集群中实现多主复制,即每个节点都可以读写,并且数据更改会在所有成员之间自动同步。本手册将指导您如何在单机上搭建MySQL 5.7.17的...

    Session_7_MySQL_Group_Replication_for_High_Availability

    MySQL Group Replication 是 Oracle 公司为 MySQL 数据库提供的一项高级复制技术,旨在通过多成员组的架构来提高数据库系统的可用性和性能。这项技术允许数据在多个服务器之间同步,不仅支持读写负载均衡,还能在...

    MySQL-group-replication 配置步骤(推荐)

    在配置Group Replication之前,你需要在一台主机上安装并运行至少三个MySQL实例,它们将共同组成一个组。每个实例都有自己的配置文件,例如 `/tmp/4406.cnf`,其中包含特定的参数设置。以下是一些关键配置项的解释:...

    MySQL 8.0 MGR自动安装配置脚本.zip

    MySQL Group Replication是高可用性和水平可扩展性的关键组件,通过它可以让数据分布在多个数据库实例中,从而在任一节点发生故障时,系统仍能保持高可用性,并进行故障自动转移。 在具体操作层面上,自动安装配置...

    MySQL 组复制研究pdf

    这个插件旨在提供一种分布式状态机复制机制,具有强大的协调性和自适应性,使得在一个复制组内的多台MySQL服务器能够协同工作,确保数据的一致性和高可用性。 在MySQL Group Replication中,所有服务器都属于同一个...

    数据库课程设计中的高可用性构建:集群配置与实践

    1. 配置每个MySQL实例的`server_id`和Group Replication参数。 2. 启动每个MySQL实例上的Group Replication。 3. 使用MySQL Shell连接到任一节点,并使用AdminAPI进行双主模式的配置。 以上所述的各种配置方式,都...

    MySQL 5.7 single-primary单主GR安装手册

    根据提供的文档内容,本文将详细解析如何安装与配置MySQL 5.7的Single-Primary Group Replication(简称GR,即组复制)。此文档主要聚焦于MySQL 5.7版本下的单主模式组复制的安装与配置流程,适用于分布式环境中需要...

    mysql集群安装-MGR组复制

    MGR,全称为Group Replication,是MySQL的一种多主复制技术,允许数据在集群中的多个节点间进行实时同步,确保数据的一致性和高可用性。在这个过程中,我们将探讨如何配置和管理MySQL Group Replication集群。 首先...

    mysql_pn_ha_innodb_cluster.pdf

    4. **MySQL Server实例**: 集群由多个MySQL Server实例组成,每个实例都是Group Replication的一部分,它们之间通过网络进行通信并保持数据同步。 InnoDB Cluster的主要优点包括: - **自动故障恢复**: 当集群中的...

    Ansible可以在主从、MGR或独立模式下安装MySQL自动化脚本。请注意自行修

    2. MGR模式:MySQL Group Replication是一种高可用性解决方案,它允许多个MySQL服务器实例共同组成一个复制组。在这个组内,所有服务器可以自动进行故障转移,并且能够对数据变更进行一致性的处理。MGR模式适合对...

    使用Ansible一键安装MySQL,完成MGR部署。MySQL可能.zip

    本文将详细介绍如何利用自动化运维工具Ansible实现MySQL数据库的快速安装,并配置为MySQL Group Replication(MGR)模式,以此实现数据库的高可用性和自动故障转移。 首先,要了解Ansible。Ansible是一个开源的自动...

    mysql-5.7.17.msi安装版

    5. Group Replication:MySQL 5.7引入了Group Replication,这是一种高可用性和灾难恢复解决方案,允许数据在多个节点间实时同步。 6. InnoDB Cluster:配合Group Replication,MySQL 5.7提供了InnoDB Cluster,...

Global site tag (gtag.js) - Google Analytics