MySQL实操系列
- MySQL实操(一)——CentOS7安装MySQL5.7及基础配置_DreamEhome的博客-CSDN博客_centos7 中安装mysql5.7配置表名忽略大小写
- MySQL实操(二)——MySQL主从同步实战_DreamEhome的博客-CSDN博客
- MySQL实操(三)——使用Mycat实现分库分表+读写分离_DreamEhome的博客-CSDN博客
- MySQL实操(四)——使用Haproxy+keeplived实现Mycat高可用_DreamEhome的博客-CSDN博客
目录
3.搭建Haproxy+Keepalived集群的另一台服务器
整体架构
实现目标
- 搭建MySQL主从复制集群
- 安装两台Mycat并配置分库分表+读写分离
- 使用haproxy实现两个mycat服务高可用
环境准备
- 虚拟机6台(演示用的CentOS7,其中两台为MySQL主从,两台Mycat服务器,两台haproxy+keepalived服务器,服务器均需开启远程访问功能)
- 已安装配置完成的MySQL两台虚拟机(可参考MySQL实操(一)——CentOS7安装MySQL5.7及基础配置(开机启动+初始密码修改+开启远程访问+不区分大小写)_DreamEhome的博客-CSDN博客_centos7 中安装mysql5.7配置表名忽略大小写)
- 两个MySQL搭建完成主从复制(可参考MySQL实操(二)——MySQL主从同步实战_DreamEhome的博客-CSDN博客,IP及主从配置同参考)
- 两台Mycat服务器并配置完成MySQL主从的分库分表+读写分离(可参考MySQL实操(三)——使用Mycat实现分库分表+读写分离_DreamEhome的博客-CSDN博客)
- 服务器规划
服务器\服务 MySQL Mycat Haproxy Keepalived 192.168.237.135 部署(主) 192.168.237.136 部署(从) 192.168.237.134 部署 192.168.237.137 部署 192.168.237.140 部署 部署 192.168.237.141 部署 部署
环境搭建
以下操作均在haproxy01:192.168.237.140上进行
Haproxy+Keepalived整体配置文件下载地址:Haproxy+Keepalived配置文件(带注释)-Linux文档类资源-CSDN下载
1.Haproxy安装的安装与配置
1.1 Haproxy安装
采用yum安装haproxy的方式进行安装
#查看yum可用的haproxy版本
yum list|grep haproxy
#在线安装使用yum安装haproxy
yum -y install haproxy.x86_64
1.2 修改haproxy配置文件
安装完成后配置文件路径:/etc/haproxy/haproxy.cfg
Haproxy配置文件下载地址:Haproxy配置文件haproxy.cnf(带注释)-CentOS文档类资源-CSDN下载
vim /etc/haproxy/haproxy.cfg
主要修改内容如下
frontend mycat
#操作端口
bind 0.0.0.0:8066
#管理端口
bind 0.0.0.0:9066
mode tcp
log global
default_backend mycat_server
backend mycat_server
balance roundrobin
#check表示检查
server mycat1 192.168.237.134:8066 check inter 5s rise 2 fall 3
server mycat2 192.168.237.137:8066 check inter 5s rise 2 fall 3
server mycatadmin1 192.168.237.134:9066 check inter 5s rise 2 fall 3
server mycatadmin2 192.168.237.137:9066 check inter 5s rise 2 fall 3
listen stats
#访问模式
mode http
#haproxy对外开发的端口
bind 0.0.0.0:5000
stats enable
#隐藏版本
stats hide-version
#通过web界面访问haproxy的路径
stats uri /haproxy
#静态资源
stats realm Haproxy\ Statistics
#通过web界面访问haproxy的用户名密码
stats auth admin:admin
#通过web界面访问haproxy后身份为admin管理员
stats admin if TRUE
1.3 启动haproxy
注意:启动haproxy之前,如果虚拟机时间未与本机同步,启动会报错;可执行以下命令不同步时间解决此问题
setenforce 0
haproxy相关命令:
#启动
systemctl start haproxy
#停止
systemctl stop haproxy
#查看状态
systemctl status haproxy
#重启
systemctl restart haproxy
1.4 haproxy测试
在浏览器中访问在haproxy中配置的web界面,输入配置的用户名密码admin/admin,进行登录:
如果mycat_server中的Status均为up,则说明配置成功
2.Keepalived的安装与配置
2.1 Keepalived安装
采用yum安装Keepalived的方式进行安装
#查看yum可用的keepalived版本
yum list|grep keepalived
#在线安装使用yum安装keepalived
yum -y install keepalived.x86_64
2.2 修改Keepalived配置文件
安装完成后配置文件路径:/etc/keepalived/keepalived.cfg
keeplived配置文件下载地址:keeplived配置文件keepalived.cnf(带注释)-Linux文档类资源-CSDN下载
vim /etc/keepalived/keepalived.cfg
修改内容如下
global_defs {
router_id NodeA #当前节点名称
}
vrrp_instance VI_1 {
state MASTER #设置主服务器
interface ens33 #系统的网卡名字(centos6为eth0,centos7位eth33)
virtual_router_id 10 #多个保持心跳的keepalived节点要设置同一个router_id
priority 100 #权重,权重数字越大,权重越大:即表示VIP访问权重最大的
advert_int 1
authentication {
auth_type PASS #通过PASS认证(密码认证)
auth_pass 123456 #多个保持心跳的keepalived节点要设置同一个auth_pass
}
virtual_ipaddress { #虚拟IP地址,可设置多个
192.168.237.255/24 #对外暴露的IP地址,24是网络位数(可省略)
192.168.237.254/24
}
track_script{ #自定义追踪脚本
chk_haproxy #追踪haproxy
}
}
vrrp_script chk_haproxy { #定义的方法名
script "/etc/keepalived/check_haproxy.sh"
interval 4 #追踪频率
weight 3 #追踪权重
}
在/etc/keepalived下新建check_haproxy.sh脚本,脚本内容如下
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
systemctl start haproxy.service
fi
2.3 启动Keepalived
Keepalived相关命令:
#启动
systemctl start keepalived
#停止
systemctl stop keepalived
#查看状态
systemctl status keepalived
#重启
systemctl restart keepalived
启动成功之后如下图所以,目前生效的VIP是192.168.237.254
3.搭建Haproxy+Keepalived集群的另一台服务器
具体操作步骤同1、2步,但需要修改Keepalived的配置文件,修改router_id和priority,其他操作同haproxy01:192.168.237.140。
Keepalived的配置文件如下:
global_defs {
router_id NodeB #当前节点名称
}
vrrp_instance VI_1 {
state MASTER #设置主服务器
interface ens33 #系统的网卡名字(centos6为eth0,centos7位eth33)
virtual_router_id 10 #多个保持心跳的keepalived节点要设置同一个router_id
priority 90 #权重,权重数字越大,权重越大:即表示VIP访问权重最大的
advert_int 1
authentication {
auth_type PASS #通过PASS认证(密码认证)
auth_pass 123456 #多个保持心跳的keepalived节点要设置同一个auth_pass
}
virtual_ipaddress { #虚拟IP地址,可设置多个
192.168.237.255/24 #对外暴露的IP地址,24是网络位数(可省略)
192.168.237.254/24
}
track_script{ #自定义追踪脚本
chk_haproxy #追踪haproxy
}
}
vrrp_script chk_haproxy { #定义的方法名
script "/etc/keepalived/check_haproxy.sh"
interval 4 #追踪频率
weight 3 #追踪权重
}
4.Haproxy+Keepalived集成测试
方式一:使用VIP测试登录Haproxy的web界面
登录http://192.168.237.254:5000/haproxy
方式二:在Mysql服务器上登录Mycat进行测试
说明:不能直接在Haproxy+Keepalived服务器上测试的原因是因为当前服务器上没有安装Mysql,无法执行mysql之类的命令
使用虚拟IP(VIP)登录mycat进行操作
#登录Mycat
# -u 登录名 用户名和密码为在mycat的server.xml中配置的name和password
# -p 密码
# -h Keepalived配置的虚拟IP
# -P Mycat端口号,默认8066
mysql -uroot -p123456 -h192.168.237.254 -P8066;
校验分库分表功能同mycat操作
方式三:通过SQL管理工具测试
以navicat为例,在navicat中新建Mysql连接:主机为VIP服务器IP,端口号使用Mycat的8066,用户名和密码为在Mycat的server.xml中配置的name和password,其余测试均同方式一致