MYSQL Group Replication的搭建过程


这篇文章主要介绍“MYSQL Group Replication的搭建过程”,在日常操作中,相信很多人在MYSQL Group Replication的搭建过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL Group Replication的搭建过程”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!1.
环境准备
操作系统redhat linux 6.8
虚拟机3台
一台用于primary, 另外两台用于做secondary
注意:
请先设置好各个主机的hostname与/etc/hosts
mysql版本: mysql-5.7.20
  主名        ip地址      在mgr中的角色mgrhost01 192.168.43.143      primarymgrhost02    192.168.43.144      secondemgrhost03    192.168.43.145      seconde2.
安装mysql数据服务
cd /tmp/
wget

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

tar -xvf
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -s
mysql-5.7.20-linux-glibc2.12-x86_64 mysql

注意:三个环境都需要安装

在三台主机上执行以下命令:
mkdir -p /database/mysql/data/3306
useradd mysql
chown -R mysql:mysql /database/mysql/data/3306
chown -R mysql:mysql /usr/local/mysql*

3.配置mysql服务
三台主机都增加配置文件: /etc/my.cnf

其中143的配置文件内容:
basedir=/usr/local/mysql/datadir=/database/mysql/data/3306port=3306socket=/tmp/mysql.sockserver_id=143gtid_mode=onenforce_gtid_consistency=onmaster_info_repository=tablerelay_log_info_repository=tablebinlog_checksum=nonelog_slave_updates=onlog_bin=mysql-binbinlog_format=rowrelay-log-recovery=1transaction_write_set_extraction=XXHASH64loose-group_replication_group_name=”aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa”loose-group_replication_start_on_boot=offloose-group_replication_local_address=
“192.168.43.143:33060″loose-group_replication_group_seeds=
“192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:33060″loose-group_replication_bootstrap_group=
off

192.168.43.144的/etc/my.cnf

[mysqld]basedir=/usr/local/mysql/datadir=/database/mysql/data/3306port=3306socket=/tmp/mysql.sockserver_id=144gtid_mode=onenforce_gtid_consistency=onmaster_info_repository=tablerelay_log_info_repository=tablebinlog_checksum=nonelog_slave_updates=onlog_bin=mysql-binbinlog_format=row
relay-log-recovery=1transaction_write_set_extraction=XXHASH64loose-group_replication_group_name=”aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa”loose-group_replication_start_on_boot=offloose-group_replication_local_address=
“192.168.43.144:33060″loose-group_replication_group_seeds=
“192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:3306″loose-group_replication_bootstrap_group=
off

192.168.43.145的/etc/my.cnf
[mysqld]basedir=/usr/local/mysql/datadir=/database/mysql/data/3306port=3306socket=/tmp/mysql.sockserver_id=145gtid_mode=onenforce_gtid_consistency=onmaster_info_repository=tablerelay_log_info_repository=tablebinlog_checksum=nonelog_slave_updates=onlog_bin=mysql-binbinlog_format=rowrelay-log-recovery=1transaction_write_set_extraction=XXHASH64loose-group_replication_group_name=”aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa”loose-group_replication_start_on_boot=offloose-group_replication_local_address=
“192.168.43.145:33060″loose-group_replication_group_seeds=
“192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:3306″loose-group_replication_bootstrap_group=
off

在这里有一些技术细节要说明一下:
    上面的三个配置文件省略了所有不必要的配置项、但是看起来还是有点多、这些都是mgr环境要求的。
    server_id 每个实例都要不要样
    loose-group_replication_group_name:为mgr高可用组起一个名字,这个名字一定要是uuid格式的。
    loose-group_replication_local_address:mgr各实例之前都是要进行通信的、这个配置项设置的就是本实例所监听的ip:端口
    loose-group_replication_group_seeds:各mgr实例所监听的ip:端口信息

三个环境初始化mysql(注意,此处mysql的root用户密码会被设置为空值):

/usr/local/mysql/bin/mysqld –defaults-file=/etc/my.cnf
–datadir=/database/mysql/data/3306/ –user=mysql –initialize-insecure

三个环境将mysql加入系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld

chkconfig mysqld on

修改环境变量:
echo ‘PATH=/usr/local/mysql/bin/:$PATH’ >>/etc/profile

启动mysql服务:
service mysqld start

停止mysql服务:
service mysqld stop4.配置MGR

4.1 创建mgr所需的用户(第一个节点)
set
sql_log_bin=0; create
user mgruser@’%’ identified by ‘mtls@352′; grant
replication slave,replication client on *.* to mgruser@’%’; create
user mgruser@’127.0.0.1′ identified by ‘mtls@352′; grant
replication slave,replication client on *.* to mgruser@’127.0.0.1′; create
user mgruser@’localhost’ identified by ‘mtls@352′; grant
replication slave,replication client on *.* to mgruser@’localhost’;set
sql_log_bin=1;4.2 配置复制所使用的用户
change master to master_user=’mgruser’, master_password=’123456′ for channel ‘group_replication_recovery’;
4.4. 初始化一个复制组
set global
group_replication_bootstrap_group=on;start
group_replication;set
global group_replication_bootstrap_group=off;
4.5. 配置MGR的第二个节点
set sql_log_bin=0; create user mgruser@’%’ identified by
‘123456’; grant replication slave,replication client
on *.* to mgruser@’%’; create user mgruser@’127.0.0.1′ identified
by ‘123456’; grant 开发云主机域名replication slave,replication client
on *.* to mgruser@’127.0.0.1′; create user mgruser@’localhost’ identified
by ‘123456’; grant replication slave,replication client
on *.* to mgruser@’localhost’;set
sql_log_bin=1;

change master
to master_user=’mgruser’, master_password=’123456′ for channel ‘group_replication_recovery’;
使用以上脚本依次处理剩余节点。
验证:

至此,配置完成
mgr中所有的结点都属于一个逻辑上的组、这个组就像是QQ群一样、是由群主建起来的、有了这个上组之后、其它的结点就可以加入到这个组中来了。
搭建中的注意项:
1.
安装虚拟机操作系统时,因hostname安装时未能设置好,修改了hostname, 重启了操作系统之后,group_replication不能正常启动
mysql> start group_replication;set global group_replication_bootstrap_group=off;ERROR 3094
(HY000): The START GROUP_REPLICATION command failed as the applier module
failed to start.
在参数文件/etc/my.cnf中加入了relay-log-recovery=1之后,才正常启动复制

2. 安装mysql服务前,最好先设置好hostname与/etc/hosts
本案例中/etc/hosts的内容为:192.168.43.143
mgrhost01192.168.43.144
mgrhost02
192.168.43.145 mgrhost03到此,关于“MYSQL Group Replication的搭建过程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: MySQL常见的日志文件分类有哪些

下面讲讲关于MySQL常见的日志文件分类有哪些,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL常见的日志文件分类有哪些这篇文章你一定会有所受益。日志对一个系统或者应用来说是非常的重要的,排错或解决故障,第一时间都是看错误日…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/20 18:05
下一篇 06/20 18:05

相关推荐