mysql主从复制、半同步复制、组复制、mysql路由器

一、mysql主从复制
master主机vm1:开启mysql数据库
编辑mysql主配置文件,给定主机server id vim /etc/my.cnf
在这里插入图片描述

重启mysql数据库 /etc/init.d/mysqld restart

mysql -p 输入密码 登陆数据库 查看主机状态
在这里插入图片描述

创建mysql用户并授权
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘westos’ #创建用户repl可以通过任何方式登陆,密码为westos
GRANT REPLICATION SLAVE ON . TO ‘repl’@’%’; #授权

select * from mysql.user\G;查看所建立用户

slave主机vm2:
创建用户mysql和数据目录/data/mysql

在这里插入图片描述

vim /etc/my.cnf ,添加设置从server id在这里插入图片描述

重启mysql /etc/init.d/mysqld restart

测试,

server2连接server1主机的mysql
CHANGE MASTER TO MASTER_HOST=‘172.25.9.1’,MASTER_USER=‘repl’,MASTER_PASSWORD=‘westos’,MASTER_LOG_FILE=‘mysql-bin.000001’,MASTER_LOG_POS=154;

开启slave并查看状态
在这里插入图片描述
二、Gtid实现主从复制
gtid工作原理:在这里插入图片描述

若主机玛斯图尔down掉,可通过gtid_next 来恢复信息。
一主一从
特点:高可用性、主备、热备份

master主机通过主配置文件打开gtid模式
在这里插入图片描述

重启mysql /etc/init.d/mysqld restart
slave主机也编辑主配置文件打开gtid模式在这里插入图片描述

/etc/init.d/mysqld restart 重启服务

slave主机关闭slave,配置连接参数,
CHANGE MASTER TO MASTER_HOST = ‘172.25.9.1’, MASTER_USER=‘repl’, MASTER_PASSWORD = ‘westos’, MASTER_AUTO_POSITION=1;

一主多从
通常使用于读作用大于写作用

通过server3连接server2
server2操作
vim /etc/my.cnf,使得二进制文件能够被读取并且开启slave更新开关
在这里插入图片描述

重启服务/etc/init.d/mysqld restart

授权repl用户用于slave服务 grant replication slave on . to repl@’%’ identified by ‘westos’;

server3操作:vim /etc/my.cnf

在这里插入图片描述

重启服务 /etc/init.d/mysqld restart

stop slave;关闭slave并且指明master数据库信息,之后再打开
CHANGE MASTER TO MASTER_HOST = ‘172.25.9.2’, MASTER_USER=‘repl’, MASTER_PASSWORD = ‘westos’, MASTER_AUTO_POSITION=1;
start slave;
show slave status\G;
在这里插入图片描述

一主二从配置成功。

三、mysql半同步复制
server1:

INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’; #安装master模块
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE ‘%semi%’; #查询模块状态
在这里插入图片描述

SET GLOBAL rpl_semi_sync_master_enabled =1; #启动模块
show variables like ‘rpl%’; #查看复制在这里插入图片描述

show status like ‘rpl%’; 查看半同步复制工作工作状态
在这里插入图片描述

server2:

安装半同步复制相应模块

INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’; #server2既是master主机又是slave主机 需要安装两个模块
INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE ‘%semi%’;
在这里插入图片描述

启动模块

SET GLOBAL rpl_semi_sync_slave_enabled =1; #启动模块
SET GLOBAL rpl_semi_sync_master_enabled =1;
1
2
show variables like ‘rpl%’;在这里插入图片描述

show status like ‘rpl%’;
在这里插入图片描述

server3(与1、2之前的配置相同):安装模块在这里插入图片描述

设定参数
SET GLOBAL rpl_semi_sync_slave_enabled =1;
stop slave io_thread;

四、mysql组复制
vm1:先关闭运行的mysql,再清理数据目录rm -fr /data/mysql/*,然后安全初始化mysqld --initialize --user=mysql

编辑主配置文件
在这里插入图片描述

重启服务

安装模块并查看
INSTALL PLUGIN group_replication SONAME ‘group_replication.so’;
SHOW PLUGINS;在这里插入图片描述

关闭二进制文件写入,创建用户并且授权,完成后代开二进制文件写入。
在这里插入图片描述

指明maeter数据库信息CHANGE MASTER TO MASTER_USER=‘rpl_user’, MASTER_PASSWORD=‘westos’
FOR CHANNEL ‘group_replication_recovery’;

master主机启动组复制必备三部曲:
查看相关模块状态,只有ONLINE才能实现组复制。
SELECT * FROM performance_schema.replication_group_members; # 查看
在这里插入图片描述

vm2、vm3:先关闭mysql
再清理数据目录rm -fr /data/mysql/*,然后安全初始化mysqld --initialize --user=mysql
再修改配置文件vim /etc/my.cnf
在这里插入图片描述

开启模块 START GROUP_REPLICATION;

在server1中查看在这里插入图片描述

如果recovering
在server2中
STOP GROUP_REPLICATION;
reset master;
reset slave;
START GROUP_REPLICATION;STOP GROUP_REPLICATION;

在server1中
STOP GROUP_REPLICATION;
reset master;
reset slave;
#启动三部曲启动master组复制模块
SET GLOBAL group_replication_bootstrap_group=ON; #
START GROUP_REPLICATION; #
SET GLOBAL group_replication_bootstrap_group=OFF;

再次查看
在这里插入图片描述

五、mysql路由器
重新打开一台虚拟机进行查询 安装查询模块
yum install -y mysql-router-community-8.0.21-1.el7.x86_64.rpm
安装成功后,配置主配置文件 vim /etc/mysqlrouter/mysqlrouter.conf

在这里插入图片描述

启动服务并且查看端口systemctl start mysqlrouter.service
netstat -antlp # 查看7001端口和7001端口是否已经打开
在这里插入图片描述server1中建立一个用户,作为客户端访问后端数据库的授权用户,多主模式下server2,server3会自动同步建立用户
grant all on test.* to wxh@’%’ identified by ‘westos’;##可写

真实主机连接server4 通过server4 连接7001 和 7002端口
mysql -h 172.25.15.4 -P 7001 -u wxh -p
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值