设为首页 收藏本站
查看: 1386|回复: 0

[经验分享] MySQL Group Replication 学习(部署篇+排错篇)

[复制链接]
发表于 2018-10-3 13:12:45 | 显示全部楼层 |阅读模式
  写在前面:之前一直用mariadb 版本,mariadb 集成了galera插件,实现pxc部署较为简单。官方在5.7推出了MySQL Group Replication,之前因为时间原因,一直没有时间搭建,今天也是抱着学习对比的态度,进行一个MySQL Group Replication 搭建和了解。
  一、 测试环境
  1)centos 6.5    3台 :
  192.168.1.212  hadoop1
  192.168.1.223  hadoop 2
  192.168.1.222  hadoop 3
  修改/etc/hosts   将对应的ip 主机名加入,  关闭防火墙,关闭selinux
  2)mysql版本:5.7.18(二进制包) :mysql-5.7.18-linux-glibc2.5-x86_64.tar
  二、 详细步骤
  1)mysql部署
  添加对应的basedir ,datadir目录,mysql用户
  mkdir  /data
  mkdir /data/mysql_data
  useradd mysql
  将对应的MySQL版本 mysql-5.7.18-linux-glibc2.5-x86_64.tar  ,配置文件my.cnf 上传到对应目录,我的上传目录为/usr/local/src/下
  解压:
  cd /usr/local/src
  tar xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar
  tar zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
  修改文件名字,将mysql文件移动到basedir下,也可以使用软链接
  mv   mysql-5.7.18-linux-glibc2.5-x86_64    /data/mysql
  cp     my.cnf    /etc/my.cnf       这里我写了个简单的mysql配置文件
  修改文件属组:
  chown  mysql.mysql -R /data/
  初始化安装mysql:
  /data/mysql/bin/mysqld --defaults-file=/etc/my.cnf   --user=mysql  --initialize
  拷贝启动服务脚本:
  cp   /data/mysql/support-files/mysql.server   /etc/init.d/mysql
  添加环境变量:
  export PATH=$PATH:/data/mysql/bin
  添加开机启动mysql
  chkconfig  --add  mysql
  启动mysql
  service mysql   start
  在错误日志中过滤出原始root密码
  [root@haboop1 ~]# cat  /data/mysql_data/error.log |grep password
  2017-10-20T11:20:26.061066Z 1 [Note] A temporary password is generated for root@localhost: &Z2va(hNqKat
  进入mysql  修改密码
  set  password=password('123456')
  至此 mysql 基本部署完成 (按照同样的方法部署其他两台机器)
  2)组复制配置  (第一个节点hadoop1)
  首先修改mysql配置文件my.cnf  添加如下配置:
  启用group repliacation的前提:
  gtid_mode=ON
  enforce_gtid_consistency=ON
  master_info_repository=TABLE
  relay_log_info_repository=TABLE
  binlog_checksum=NONE
  log_slave_updates=ON
  binlog_format=ROW
  安装组复制插件
  mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
  组复制参数配置(动态配置后,最好加入配置文件my.cnf)
  set global transaction_write_set_extraction = XXHASH64
  set global group_replication_start_on_boot = OFF
  set global group_replication_bootstrap_group = OFF
  set global group_replication_group_name = b6ddfda0-d8bc-4272-a58f-4ea75acbbc79
  set global group_replication_local_address = '192.168.1.212:23306'
  set global group_replication_group_seeds = '192.168.1.212:23306,192.168.1.222:23306,192.168.1.223:23306'
  开启多主模式的参数:
  set global group_replication_single_primary_mode=FALSE
  set global group_replication_enforce_update_everywhere_checks=TRUE
  创建复制账户
  SET SQL_LOG_BIN=0;
  CREATE USER repl@'%';

  GRANT REPLICATION SLAVE ON *.* TO repl@'%'>  SET SQL_LOG_BIN=1;
  CHANGE MASTER TO MASTER_USER='repl',MASTER_PASSWORD='repl' FOR CHANNEL 'group_replication_recovery';
  启动组复制
  SET GLOBAL group_replication_bootstrap_group=ON;
  注:group_replication_bootstrap_group参数设置为ON,是为了标示以后加入集群的服务器都已这台服务器为基准,只在某一个节点上使用。本例是以第一个节点为准。
  START GROUP_REPLICATION;
  如果启动报错,查看错误日志具体报错信息!
  启动正常后,检查组复制状态:
  mysql> SELECT * FROM performance_schema.replication_group_members;
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | group_replication_applier | 931dccbe-b58b-11e7-9ab3-000c29d7bafc | hadoop1     |        3306 | ONLINE
  这样第一个节点的配置就完成了!注意查看错误日志中的信息,
  3)配置第二个节点(hadoop2)
  启用group repliacation的前提:
  gtid_mode=ON
  enforce_gtid_consistency=ON
  master_info_repository=TABLE
  relay_log_info_repository=TABLE
  binlog_checksum=NONE
  log_slave_updates=ON
  binlog_format=ROW
  安装组复制插件
  mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
  组复制参数配置(动态配置后,最好加入配置文件my.cnf)
  set global transaction_write_set_extraction = XXHASH64
  set global group_replication_start_on_boot = OFF
  set global group_replication_bootstrap_group = OFF
  set global group_replication_group_name = b6ddfda0-d8bc-4272-a58f-4ea75acbbc79
  set global group_replication_local_address = '192.168.1.223:23306'
  set global group_replication_group_seeds = '192.168.1.212:23306,192.168.1.222:23306,192.168.1.223:23306'
  开启多主模式的参数:
  set global group_replication_single_primary_mode=FALSE
  set global group_replication_enforce_update_everywhere_checks=TRUE
  创建复制账户
  SET SQL_LOG_BIN=0;
  CREATE USER repl@'%';

  GRANT REPLICATION SLAVE ON *.* TO repl@'%'>  SET SQL_LOG_BIN=1;
  CHANGE MASTER TO MASTER_USER='repl',MASTER_PASSWORD='repl' FOR CHANNEL 'group_replication_recovery';
  启动组复制
  START GROUP_REPLICATION;
  启动正常后检查组复制状态
  SELECT * FROM performance_schema.replication_group_members;
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | group_replication_applier | 931dccbe-b58b-11e7-9ab3-000c29d7bafc | hadoop1     |        3306 | ONLINE       |
  | group_replication_applier | ab8c3ec3-b588-11e7-a769-000c29c57be6 | haboop2     |        3306 | ONLINE
  4)配置第三个节点(hadoop3)
  启用group repliacation的前提:
  gtid_mode=ON
  enforce_gtid_consistency=ON
  master_info_repository=TABLE
  relay_log_info_repository=TABLE
  binlog_checksum=NONE
  log_slave_updates=ON
  binlog_format=ROW
  安装组复制插件
  mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
  组复制参数配置(动态配置后,最好加入配置文件my.cnf)
  set global transaction_write_set_extraction = XXHASH64
  set global group_replication_start_on_boot = OFF
  set global group_replication_bootstrap_group = OFF
  set global group_replication_group_name = b6ddfda0-d8bc-4272-a58f-4ea75acbbc79
  set global group_replication_local_address = '192.168.1.222:23306'
  set global group_replication_group_seeds = '192.168.1.212:23306,192.168.1.222:23306,192.168.1.223:23306'
  开启多主模式的参数:
  set global group_replication_single_primary_mode=FALSE
  set global group_replication_enforce_update_everywhere_checks=TRUE
  创建复制账户
  SET SQL_LOG_BIN=0;
  CREATE USER repl@'%';

  GRANT REPLICATION SLAVE ON *.* TO repl@'%'>  SET SQL_LOG_BIN=1;
  CHANGE MASTER TO MASTER_USER='repl',MASTER_PASSWORD='repl' FOR CHANNEL 'group_replication_recovery';
  启动组复制
  START GROUP_REPLICATION;
  启动正常后检查组复制状态
  mysql> SELECT * FROM performance_schema.replication_group_members;
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
  +---------------------------+--------------------------------------+-------------+-------------+--------------+
  | group_replication_applier | 931dccbe-b58b-11e7-9ab3-000c29d7bafc | hadoop1     |        3306 | ONLINE       |
  | group_replication_applier | ab8c3ec3-b588-11e7-a769-000c29c57be6 | haboop2     |        3306 | ONLINE       |
  | group_replication_applier | d24c1c76-b4ef-11e7-969a-000c29a75f68 | hadoop3     |        3306 | ONLINE
  5)验证,在各节点创建,插入删除数据
  这样 三个节点的组复制基本配置完成了!
  在配置过程中也会遇到报错,遇到报错过程可以查看错误日志 参考:
  http://blog.itpub.net/27067062/viewspace-2142098
  http://blog.csdn.net/zdy0_2004/article/details/69568988


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-609777-1-1.html 上篇帖子: loadrunner通过使用libmysql.dll完成mysql的测试 下篇帖子: MySQL ibdata1 太大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表