MySQL数据库mycat高可用

高可用方案 我们可以使用 HAProxy + Keepalived 配合两台 Mycat 搭起 Mycat 集群,实现高可用性。 HAProxy实现了 MyCat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过 Keepalived 来实现.
安装配置 HAProxy
解压编译
在这里插入图片描述

make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

ARGET=linux310,内核版本,使用uname -r查看内核,如: 3.10.0-514.el7,此时该参数就为 linux310;

#ARCH=x86_64,系统位数;
#PREFIX=/usr/local/haprpxy
#/usr/local/haprpxy,为haprpxy安装路径。
编译完成后进行安装
在这里插入图片描述

进入haproxy下sbin中编写配置文件
在这里插入图片描述

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

global
 log 127.0.0.1 local0
 #log 127.0.0.1 local1 notice
 #log loghost local0 info
 maxconn 4096
 chroot /usr/local/haproxy
 pidfile /usr/local/haproxy/haproxy.pid
 uid 99
 gid 99
 daemon
#debug
 #quiet
defaults
 log global
 mode tcp
 option abortonclose
 option redispatch
 retries 3
 maxconn 2000
 timeout connect 5000
 timeout client 50000
 timeout server 50000
listen proxy_status
 bind :48066
 mode tcp
 balance roundrobin
        server mycat_1 192.168.179.148:8066 check inter 10s
        server mycat_2 192.168.179.152:8066 check inter 10s
frontend admin_stats
 bind :7777
 mode http
 stats enable
 option httplog
 maxconn 10
 stats refresh 30s
 stats uri /admin
 stats auth admin:123123
 stats hide-version
 stats admin if TRUE

创建软连接
在这里插入图片描述

启动haproxy服务查看端口
在这里插入图片描述

关闭7777和48066防火墙端口

验证7777和48066
7777:
在浏览器上输入http://ip:7777/admin
在这里插入图片描述

输入配置的用户与密码登录进去
在这里插入图片描述

48066:
在这里插入图片描述
在这里插入图片描述

安装配置keep
创建防火墙规则
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload
在这里插入图片描述

安装依赖包
yum install kernel-devel openssl-devel popt-devel
在这里插入图片描述

解压keep包后编译安装
tar zxf keepalived-2.2.4.tar.gz
cd keepalived-2.2.4/
./configure --prefix=/ && make && make install
在这里插入图片描述

修改keep主配文件
Vim /etc/keepalived/keepalived.conf
主配翻译:

! Configuration File for keepalived //!表示注释 
global_defs { 
router_id MYSQL-1 //表示运行keepalived服务器的一个标识
 } 
vrrp_instance VI_1 {
state BACKUP //指定keepalived的角色, 两台配置此处均是BACKUP,设为BACKUP将根据优 先级决定主或从 
interface eth0 //指定HA监测网络的接口 
virtual_router_id 51 //虚拟路由标识,这个标识是一个数字(取值在0-255之间,用来区分 多个instance的VRRP组播),同一个vrrp实例使用唯一的标识,确保和master2相同,同网内不同集群 此项必须不同,否则发生冲突。 
priority 100 //用来选举master的,要成为master,该项取值范围是1-255(在此范围之外 会被识别成默认值100),此处master2上设置为50 
advert_int 1 //发VRRP包的时间间隔,即多久进行一次master选举(可以认为是健康查检时 间间隔) 
nopreempt //不抢占,即允许一个priority比较低的节点作为master,即使有priority更
高的节点启动 
authentication { //认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识 别前8位) 
auth_type PASS 
auth_pass 1111 
} 
virtual_ipaddress { //VIP区域,指定vip地址 
192.168.1.100 
}
}
virtual_server 192.168.1.100 3306 { //设置虚拟服务器,需要指定虚拟IP地址和服务端 口,IP与端口之间用空格隔开 
delay_loop 2 //设置运行情况检查时间,单位是秒 
lb_algo rr //设置后端调度算法,这里设置为rr,即轮询算法 
lb_kind DR //设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选
persistence_timeout 60 //会话保持时间,单位是秒。这个选项对动态网页是非常有用的, 为集群系统中的session共享提供了一个很好的解决方案。有了这个会话保持功能,用户的请求会被一 直分发到某个服务节点,直到超过这个会话的保持时间。 
protocol TCP //指定转发协议类型,有TCP和UDP两种 
real_server 192.168.1.101 3306 { //配置服务节点1,需要指定real server的真实IP 地址和端口,IP与端口之间用空格隔开 
注:master 2上此处改为192.168.1.102(即master2本机ip) 
weight 3 //配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权 值大小为了区分不同性能的服务器 
notify_down /etc/keepalived/bin/mysql.sh //检测到realserver的mysql服务down 后执行的脚本 
TCP_CHECK { 
connect_timeout 3 //连接超时时间 
nb_get_retry 3 //重连次数 
delay_before_retry 3 //重连间隔时间 
connect_port 3306 //健康检查端口 
}
}
}

在这里插入图片描述

第二台mycat修改优先级
在这里插入图片描述

启动keep
在这里插入图片描述

查看进程是否开启
ps -ef |grep keep

在这里插入图片描述
查看mycat1ip
在这里插入图片描述

使用192.168.179.100登录mycat查看是否登录成功
在这里插入图片描述

Mycat安全设置
权限配置
user 标签权限控制 目前 Mycat 对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库 级别的读写权限控制。是通过 server.xml 的 user 标签进行配置。
在这里插入图片描述

privileges 标签权限控制 在 user 标签下的 privileges 标签可以对逻辑库(schema)、表(table)进行精 细化的 DML 权限控制。 privileges 标签下的 check 属性,如为 true 开启权限检查,为 false 不开启,默 认为 false。 由于 Mycat 一个用户的 schemas 属性可配置多个逻辑库(schema) ,所以 privileges 的下 级节点 schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制.
在这里插入图片描述

配置说明
在这里插入图片描述
在这里插入图片描述

Sql拦截
firewall 标签用来定义防火墙; firewall 下 whitehost 标签用来定义 IP 白名单 , blacklist 用来定义SQL 黑名单。

  1. 白名单 可以通过设置白名单, 实现某主机某用户可以访问 Mycat,而其他主机用户禁止访问。 ####设 置白名单
    在这里插入图片描述

配置只有192.168.179网段的主机可以通过mycat用户访问
2. 黑名单 可以通过设置黑名单, 实现 Mycat 对具体 SQL 操作的拦截, 如增删改查等操作的拦截。
在这里插入图片描述

配置禁止mycat用户进行删除操作

可以设置的黑名单 SQL 拦截功能列表
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值