MGR(MySQL Group Replication)是MySQL5.7.17版本引进来的一个数据库高可用架构,解决了传统异步复制和半同步复制的缺陷(主从数据一致性的问题),MGR依靠分布式一致性协议PAXOS,实现了主从数据库的一致性。
一. 准备
1.准备好三台安装好linux的机器
2.修改IP地址 192.168.1.71 192.168.1.72 192.168.1.73
3.修改主机名 m1 m2 m3
4.修改IP与 hostname映射关系
sudo cat > /etc/hosts <<-'EOF' 192.168.1.71 m1 192.168.1.72 m2 192.168.1.73 m3 EOF
5.关selinux 关防火墙 开机自动关防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld&&systemctl disable firewalld
二.安装mysql数据库 不能克隆
1.卸载 mariadb 查看是否安装mariadb 命令
rpm -qa | grep mariadb
卸载 mariadb 命令如下:
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
2.创建目录 /usr/local/mysql
mkdir /usr/local/mysql
3.下载安装包
cd /usr/local/mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar
4.解压 tar -xvf mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar
5.安装
rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm --nodeps --force
6.查看是否安装好
rpm -qa|grep mysql
三.配置MySQL 修改MySQL登录密码
1.设置开机自启动
systemctl start mysqld.service&&systemctl enable mysqld.service
2.获取初始密码
cat /var/log/mysqld.log | grep password
3.登录并修改 初始密码 mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'QQqq@123456'; 修改统一密码为: QQqq@123456
flush privileges; 刷新
ALTER USER 'root'@'localhost' IDENTIFIED BY 'QQqq@123456' PASSWORD EXPIRE NEVER; 修改加密规则
flush privileges; 刷新
四.主从节点配置
1配置my.cnf 文档 /etc/my.cnf
default_authentication_plugin=mysql_native_password plugin_dir =/usr/lib64/mysql/plugin server_id=1 #第一台 第二台 第三台机推荐用1 2 3 或者用IP地址标识 gtid_mode=ON enforce_gtid_consistency=ON binlog_checksum=NONE loose-group_replication_recovery_get_public_key= ON loose-group_replication_recovery_use_ssl= ON loose-group_replication_group_name="aadaaaaa-adda-adda-aaaa-aaaaaaddaaaa" loose-group_replication_start_on_boot=OFF loose-group_replication_local_address= "m1:33061" #第一台 第二台 和第三台机器必须分别改为 m1:33061 m2:33062 m3:33063 loose-group_replication_group_seeds= "m1:33061,m2:33062,m3:33063" loose-group_replication_bootstrap_group=OFF
2.创建复制帐号
SET SQL_LOG_BIN=0; CREATE USER rpl_user@'%' IDENTIFIED BY 'Qypt@123456'; GRANT REPLICATION SLAVE ON . TO rpl_user@'%'; FLUSH PRIVILEGES; SET SQL_LOG_BIN=1; CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Qypt@123456' FOR CHANNEL 'group_replication_recovery';
3.安装MGR插件
install PLUGIN group_replication SONAME 'group_replication.so';
三台机全部要安装
show plugins; 显示 查看 组件
exit; 退出
init 6 重启服务器
4.主节点操作
reset master; #复位
SET GLOBAL group_replication_bootstrap_group=ON; #设置参数为on
START GROUP_REPLICATION; #启动group_replication
SELECT * FROM performance_schema.replication_group_members; # 查看组信息
5.从节点操作 START GROUP_REPLICATION; #启动 group_replication