主页 > 互联网  > 

mysqlmgr集群部署


一、前言

      mysql mgr集群是为了实现mysql高可用,分为单主集群和多主集群,单主集群只有一个主节点可写,节点发生故障时,自动进行主从的故障切换,多主集群所有节点都可写,当节点发生故障时,将故障节点剔除出集群

主机信息

nameipportmysql0110.1.60.1213306、33061mysql0210.1.60.1223306、33061mysql0310.1.60.1233306、33061

二、部署(单主节点)

每个节点部署mysql服务

mysql官网找到mysql5.7版本yum包,使用wget命令下载

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装mysql yum源

 yum -y install mysql57-community-release-el7-10.noarch.rpm

 更改mysql yum源配置,将需要安装得5.7版本的gpgchenck项改为0

执行yum安装mysql

 yum -y install mysql-community-server

启动mysql服务

systemctl start mysqld && systemctl enable mysqld

通过mysql日志文件查看初始登录密码

cat /var/log/mysqld.log |grep password

使用从日志中得到得密码登录数据库

 mysql -u root -p

修改默认密码

alter user 'root'@'localhost' identified by '新密码';

flush privileges;

编辑配置文件

vi /etc/my.cnf

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid server-id=1 #每个节点配置的id不能相同 gtid_mode=ON #开启gtid enforce_gtid_consistency=ON #开启gtid的强一致性,mgr集群配置必须开启,用以保证事务的一致性 binlog_checksum=NONE #禁用二进制事件校验 log_bin=binlog #开启binlog日志 log_slave_updates=ON #开启级联复制 binlog_format=ROW #以行的形式记录,mgr集群必须配置以行的形式记录 master_info_repository=TABLE relay_log_info_repository=TABLE transaction_write_set_extraction=XXHASH64 #server必须为每个事务收集写集合,使用XXHASH64哈希算法将其编码为散列 loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" #创建组名UUID,自定义编辑 loose-group_replication_start_on_boot=off #server启动时不自启组复制,为了避免每次启动自动引导具有相同名称的第二个组,所以设置为OFF loose-group_replication_local_address="10.1.60.121:33061" #配置当前节点mgr服务地址和端口,该端口为自定义的端口 loose-group_replication_group_seeds="10.1.60.121:33061,10.1.60.122:33061,10.1.60.123:33061" #配置mgr集群所有节点 loose-group_replication_bootstrap_group=off report_host=10.1.60.121 #配置当前节点地址 report_port=3306 #配置mysql服务端口

重启mysql服务使配置生效

systemctl restart mysqld

各节点配置mgr插件,并设置同步账号

mysql -u root -p

安装mgr插件

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

关闭binlog日志记录

set SQL_LOG_BIN=0;

创建mgr集群同步账号

create user mgr@'%' identified by '12345678';

设置账号权限

grant replication slave on *.* to mgr@'%'; flush privileges;

开启binlog日志记录

set SQL_LOG_BIN=1;

设置同步账号

CHANGE MASTER TO MASTER_USER='mgr', MASTER_PASSWORD='12345678' FOR CHANNEL 'group_replication_recovery';

创建mgr集群

选一个主节点创建mgr集群,这里选用10.1.60.121为主节点

mysql -u root -p

配置后面加入集群的节点以该主节点为基准

SET GLOBAL group_replication_bootstrap_group=ON;

作为首个节点启动mgr集群

START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;

 查看mgr集群信息

SELECT * FROM performance_schema.replication_group_members;

其余两个节点执行以下命令加入mgr集群

START GROUP_REPLICATION;

查看mgr集群信息

SELECT * FROM performance_schema.replication_group_members;

状态为online即正常 

查询mgr集群中,哪个节点为主节点

select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';

也可以通过查看是否为read_only确定主节点

show variables like '%read_only%';

 

至此mgr单主集群搭建完成,主节点可写,从节点可读,主节点发生故障后,会自动在从节点中选主

mgr集群节点发生故障,恢复后需要手动启动组复制功能才会从新加入集群中 

mysql -u root -p START GROUP_REPLICATION; SELECT * FROM performance_schema.replication_group_members;

标签:

mysqlmgr集群部署由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“mysqlmgr集群部署