服务器环境
系统 | 主机名 | IP |
---|---|---|
CentOS 7.9 | mgr-node01 | 192.168.200.31 |
CentOS 7.9 | mgr-node02 | 192.168.200.32 |
CentOS 7.9 | mgr-node03 | 192.168.200.33 |
mysql8安装
tar zxvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar.gz
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.19-1.el7.x86_64.rpm --nodeps --force
mkdir -p /data/mysql/data /data/mysql/mysql-files /data/mysql/mysql-keyring
chown -R mysql:mysql /data/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql-files
rm -rf /var/lib/mysql-keyring
ln -s /data/mysql/data /var/lib/mysql
ln -s /data/mysql/mysql-files /var/lib/mysql-files
ln -s /data/mysql/mysql-keyring /var/lib/mysql-keyring
修改配置文件my.cnf
192.168.200.31
cat > /etc/my.cnf << EOF
[mysqld]
port=3308
default-time-zone='+08:00'
server-id=31
log-bin=mysql-bin
binlog_format=row
default-authentication-plugin=mysql_native_password
skip-name-resolve # 禁用DNS解析,加快IP方式的连接
auto-increment-increment=1
auto-increment-offset=1
plugin_dir=/usr/lib64/mysql/plugin/
gtid-mode=on # 开启gtid模式
enforce-gtid-consistency=1 #开启gtid安全限制
report_host=192.168.200.31
#MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
transaction_isolation = READ-COMMITTED
#因为集群会在故障恢复时互相检查binlog的数据,
#所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
log-slave-updates = 1
#binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
binlog_checksum = NONE
#基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
master_info_repository = TABLE
#同上配套
relay_log_info_repository = TABLE
#组复制设置#记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
transaction_write_set_extraction = XXHASH64
#primary节点到secondary节点的请求是否为基于RSA密钥对的密码交换
loose-group_replication_recovery_get_public_key=on
# 组恢复时应用ssl
loose-group_replication_recovery_use_ssl=on
#相当于此GROUP的名字,是UUID值,不能和集群内其他GTID值的UUID混用,可用uuidgen来生成一个新的,
#主要是用来区分整个内网里边的各个不同的GROUP,而且也是这个group内的GTID值的UUID
loose-group_replication_group_name = '2d837649-b362-4ed3-9aa8-9f3292b2812f'
#IP地址白名单,默认只添加127.0.0.1,不会允许来自外部主机的连接,按需安全设置
loose-group_replication_ip_whitelist = '127.0.0.1/8,192.168.200.0/24'
#是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
loose-group_replication_start_on_boot = OFF
#本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
loose-group_replication_local_