MGR安装
二、环境准备
主机名 IP地址 角色
node2.com 192.168.174.10 primary
node3.com 192.168.174.10 seconde
node3.com 192.168.174.10 seconde
操作系统:CentOS7
MySQL版本:mysql-5.7.33-linux-glibc2.12-x86_64
1、准备安装包
自从从MySQL官网下载。
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2、解压安装包
tar -xvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
再移动并重命名。
mv mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
3、创建MySQL用户组合用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限。
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vi /etc/my.cnf
node2的配置文件内容如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
#服务器编号,Master=1
server_id=1
#开启binlog的GTID模式
gtid_mode=ON
#开启后MySQL只允许能够保障事务安全,并且能够被日志记录的SQL语句被执行
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
#关闭binlog校验
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
#定义用于事务期间哈希写入提取的算法,组复制模式下必须设置为 XXHASH64。
transaction_write_set_extraction=XXHASH64
#确定组复制恢复时是否应该应用 SSL,通常设置为“开”,但默认设置为“关”。
#loose‐group_replication_recovery_use_ssl=ON
#该服务器的实例所在复制组的名称,必须是有效的 UUID,所有节点必须相同。
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
#确定服务器是否应该在服务器启动期间启动组复制。
loose-group_replication_start_on_boot=off
#大坑2:
#为复制组中其他的成员提供的网络地址,指定为“主机:端口”的格式化字符串。
#很多人想当然认为端口应该是3306,起始不然,MGR需要开启新端口24901同步交换
#所以这里不要写错,同时,前面我们配置了hosts文件做了主机名与IP的映射,这里直接写主机名即可
loose-group_replication_local_address= "192.168.174.10:24901"
#用于建立新成员到组的连接组成员列表。
#这个列表指定为由分隔号间隔的组成员网络地址列表,类似 host1:port1、host2:port2 的格式。
#同样采用n0~n2的主机名替代
loose-group_replication_group_seeds= "192.168.174.10:24901,192.168.174.11:24902,192.168.174.12:24903"
#配置此服务器为引导组,这个选项必须仅在一台服务器上设置,
#并且仅当第一次启动组或者重新启动整个组时。成功引导组启动后,将此选项设置为关闭。
loose-group_replication_bootstrap_group=off
4.2 node3的配置文件内容如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_in