文章目录

  • 项目名称:双vip的MySQL高可用的集群
  • 网络拓扑图
  • 项目描述
  •         构建一个高可用的功能,并且实现读写分离的高效的MySQL集群,确保业务的稳定性;部署基于GTID的主从复制+读写分离;
  • 项目步骤
  •         准备工作
  •                 1.准备三台服务器(1主2从),都开启mysql服务;再准备两台机器作为中间件,用来读写分离,尽量三台服务器的数据库版本一致;
  •                 2.master服务器和slave服务器都要开启二进制日志;master服务器和slave服务器的server_id不能相同,必须唯一;
  •                 3.master和slave服务器都要关闭防火墙和selinux;
  •         master配置
  •                 1.创建用来复制二进制日志的用户;
  •                 2.给从服务器授予获取二进制日志的权限;
  •                 3.创建完全备份;
  •                 4.将完全备份传输到slave1和slave2机器上;
  •                 5.开启二进制日志并设置server_id;
  •                 6.重启MySQL服务;
  •         slave配置
  •                 1.slave3和slave4导入备份;
  •                 2.开启二进制日志并且设置server_id,(slave4做相同操作);
  •                 3.重启MySQL服务;
  •                 4.查看master2信息;
  •                 5.在slave3和slave4上启用master2信息;
  •                 6.效果展示;
  •         部署基于Gtid的主从复制(建立在异步复制基础上进行)
  •                 1.关闭slave服务;
  •                 2.slave3和slave4都要清除master2;
  •                 3.配置文件信息;
  •                 4.重启服务;
  •         读写分离
  •                 1.安装mysqlrouter;
  •                 2.关闭防火墙和selinux;
  •                 3.修改配置文件;
  •                 4.查看7001和7002端口是否启动;
  •                 5.创建用户和权限;
  •                 6.测试连接;
  •                 7.验证权限;
  •         双vip高可用
  •                 1.在router3(master)和router(backup)都安装 keepalived;
  •                 2.修改配置文件;
  •                 3.检验结果。


项目名称:双vip的MySQL高可用的集群

网络拓扑图

mysql集群serverid Mysql集群 vip_数据库

项目描述

项目步骤

永久关闭防火墙

mysql集群serverid Mysql集群 vip_服务器_02


永久关闭selinux

mysql集群serverid Mysql集群 vip_二进制日志_03

mysql集群serverid Mysql集群 vip_mysql_04

mysql集群serverid Mysql集群 vip_服务器_05

mysql集群serverid Mysql集群 vip_服务器_06

mysql集群serverid Mysql集群 vip_mysql集群serverid_07

mysql集群serverid Mysql集群 vip_二进制日志_08


备份成功

mysql集群serverid Mysql集群 vip_mysql_09

mysql集群serverid Mysql集群 vip_数据库_10

mysql集群serverid Mysql集群 vip_mysql_11

mysql集群serverid Mysql集群 vip_mysql集群serverid_12

mysql集群serverid Mysql集群 vip_二进制日志_13

mysql集群serverid Mysql集群 vip_数据库_14

mysql集群serverid Mysql集群 vip_二进制日志_15

mysql集群serverid Mysql集群 vip_mysql_16


MASTER_USER是先前创建获取二进制日志文件的用户

MASTER_PASSWORD是先前创建获取二进制日志文件的用户的密码

MASTER_PORT端口号

MASTER_LOG_FILE二进制日志文件名

MASTER_LOG_POS位置号

mysql集群serverid Mysql集群 vip_二进制日志_17


当SQL_Running和IO_Running都为Yes时,说明成功连接上master2

此时异步复制完成

mysql集群serverid Mysql集群 vip_mysql_18

mysql集群serverid Mysql集群 vip_服务器_19

master2配置

mysql集群serverid Mysql集群 vip_mysql集群serverid_20


enforce_gtid_consistency 保证GTID安全的参数强制gtid一致性,开启后对于特定create table不被支持

slave3和slave4配置信息

mysql集群serverid Mysql集群 vip_mysql集群serverid_21

mysql集群serverid Mysql集群 vip_mysql_22


至此基于Gtid的主从复制完成

rpm -ivh +mysqlrouter安装包

mysql集群serverid Mysql集群 vip_数据库_23


mysql集群serverid Mysql集群 vip_数据库_24

查看配置文件

mysql集群serverid Mysql集群 vip_mysql集群serverid_25


mysql集群serverid Mysql集群 vip_mysql_26


修改配置文件

router3

mysql集群serverid Mysql集群 vip_mysql_27


router4

mysql集群serverid Mysql集群 vip_mysql集群serverid_28


刷新服务

mysql集群serverid Mysql集群 vip_二进制日志_29

mysql集群serverid Mysql集群 vip_二进制日志_30


mysql集群serverid Mysql集群 vip_服务器_31


listen状态表示成功

在master建立

第一种:可读可写的用户

mysql集群serverid Mysql集群 vip_服务器_32


mysql集群serverid Mysql集群 vip_二进制日志_33


第二种:仅可读用户

mysql集群serverid Mysql集群 vip_服务器_34


mysql集群serverid Mysql集群 vip_二进制日志_35

所连接的时mysqlrouter ,划分权限的依靠用户所被授 予的权限,端口不能限制权限

可读写用户

mysql集群serverid Mysql集群 vip_mysql_36


mysql集群serverid Mysql集群 vip_二进制日志_37


mysql集群serverid Mysql集群 vip_mysql集群serverid_38


仅读用户

mysql集群serverid Mysql集群 vip_数据库_39


mysql集群serverid Mysql集群 vip_mysql_40


此时读写分离成功

mysql集群serverid Mysql集群 vip_二进制日志_41

router3上配置

mysql集群serverid Mysql集群 vip_mysql_42



mysql集群serverid Mysql集群 vip_服务器_43

mysql集群serverid Mysql集群 vip_服务器_44


检验结果

router3

mysql集群serverid Mysql集群 vip_二进制日志_45


router4

mysql集群serverid Mysql集群 vip_mysql集群serverid_46


实际配置
由于是双VIP,此处我们需要配置两个vip,让master和 backup互为主主,最大的利用资源

做master - - - VI_1
删除从virtual server开始的所有(从这里开始主要是 keepalived的负载均衡作用,此次我们只使用keepalived的高可用)
注释 vrrp_strict # vrrp_strict
修改状态为backup state MASTER
修改网络接口与本机一致 - - - 一致则不用修改 interface eth33
修改virtual_router_id — 一致
修改优先级 - - -优先级高于backup
修改虚拟ip地址vip - - - 一致
做backup - - - VI_2
修改vrrp_instance 为 VI_2
修改状态为backup state BACKUP
修改网络接口与本机一致 - - - 一致则不用修改 interface eth33
修改virtual_router_id — 一致
修改优先级 - - - 优先级低于master
修改虚拟ip地址vip - - - 一致

.router3(master)配置

mysql集群serverid Mysql集群 vip_数据库_47


.router4(backup)配置

mysql集群serverid Mysql集群 vip_mysql_48

router3(master):

mysql集群serverid Mysql集群 vip_服务器_49


mysql集群serverid Mysql集群 vip_mysql集群serverid_50


router4(slave):

mysql集群serverid Mysql集群 vip_服务器_51

mysql集群serverid Mysql集群 vip_mysql集群serverid_52


注意:检结果之前一定先关闭防火墙,防止脑裂