参考资料:
https://github.com/sysown/proxysql/wiki #GitHub官方
https://github.com/malongshuai/proxysql/wiki #大佬中文翻译版

https://www.mysql.com/ #Mysql 官网
MySQL Group Replication:ProxySQL中的原生支持
https://lefred.be/content/mysql-group-replication-native-support-in-proxysql/
MySQL MGR实现分析 - 成员管理与故障恢复实现
https://www.cnblogs.com/zyfd/p/9816571.html

相关资料可以了解下大概流程,实现原理。proxysql 和MySQL安装 上面资料中有
环境准备:
 192.168.17.133  mysql-master
 192.168.17.134  mysql-slave134
 192.168.17.135  mysql-slave135
 vim /etc/hosts    #配置DNS解析
 vim /etc/hostname  #设置主机名

MySQL配置

  vim /etc/my.cnf 加入以下配置
 #MGR 设置
 server_id=133
 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=binlog
 binlog_format=ROW
 transaction_write_set_extraction=XXHASH64  ##指示server必须为每个事务收集写集合,并使用XXHASH64哈希算法将其编码为散列
 loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
 loose-group_replication_start_on_boot=off  ##指示插件在server启动时不自动启动组复制
 loose-group_replication_local_address= "192.168.17.133:33061" #每个节点此处为本机的IP及端口
 loose-group_replication_group_seeds= "192.168.17.133:33061,192.168.17.134:33061,192.168.17.135:33061" #MGR组的所有IP及端口
 loose-group_replication_bootstrap_group=off  ##配置是否自动引导组
 loose-group_replication_ip_whitelist="127.0.0.1,192.168.17.0/24"   ##用户白名单
 loose-group_replication_enforce_update_everywhere_checks=ON  ##多主模式下为多主更新启用或禁用严格一致性检查
 loose-group_replication_single_primary_mode=OFF  ##设置组自动选择一个server来处理读/写工作
 group_replication_member_weight=100 #权重,如果多个服务器权重相同会根据server_uuid按字典顺序和选择第一个。
 loose-group_replication_enforce_update_everywhere_checks=OFF  ##单主模式下一致性检查可以关闭
 loose-group_replication_single_primary_mode=ON  ##单主模式

登录mysql 主服务器设置

 show databases;  
 SET SQL_LOG_BIN=0;    #禁用二进制日至
 set global validate_password.policy=0; 
 CREATE USER replication@'%' IDENTIFIED BY 'wangfeng';    #创建用户
 GRANT REPLICATION SLAVE ON . TO replication@'%';    #加用户权限
 FLUSH PRIVILEGES;    #刷新数据
 SET SQL_LOG_BIN=1;    #启用二进制日至
 CHANGE MASTER TO MASTER_USER='replication', MASTER_PASSWORD='wangfeng' FOR CHANNEL 'group_replication_recovery';    #当配置了用户,使用CHANGE MASTER TO语句将服务器为下一次需要从其他成员恢复状态时使SET SQL_LOG_BIN=0;用group_replication_recovery复制通道的给定凭证,发出以下命令,用创建用户时直接使用的值替换replication@和密码
 INSTALL PLUGIN group_replication SONAME 'group_replication.so';    #安装组插件
 SHOW PLUGINS; 
 SET GLOBAL group_replication_bootstrap_group=ON;        #单主模式下,master开启声明初始化group  (只需要第一台master)
 START GROUP_REPLICATION; #打开组复制
 SET GLOBAL group_replication_bootstrap_group=OFF;  
 SELECT * FROM performance_schema.replication_group_members; #查看组成员状态

从服务器设置

 show databases;  
SET SQL_LOG_BIN=0; #禁用二进制日至
set global validate_password.policy=0;
SHOW VARIABLES LIKE 'validate_password%';
CREATE USER replication@'%' IDENTIFIED BY 'wangfeng'; #创建用户
GRANT REPLICATION SLAVE ON . TO replication@'%'; #加用户权限
FLUSH PRIVILEGES; #刷新数据
SET SQL_LOG_BIN=1; #启用二进制日至
CHANGE MASTER TO MASTER_USER='replication', MASTER_PASSWORD='wangfeng' FOR CHANNEL 'group_replication_recovery'; #当配置了用户,使用CHANGE MASTER TO语句将服务器为下一次需要从其他成员恢复状态时使SET SQL_LOG_BIN=0;用group_replication_recovery复制通道的给定凭证,发出以下命令,用创建用户时直接使用的值替换rpl_user和密码
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; #安装组插件
SHOW PLUGINS;
START GROUP_REPLICATION; #打开组复制
SELECT * FROM performance_schema.replication_group_members;

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

open