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 主配翻译:
第二台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 黑名单。
- 白名单 可以通过设置白名单, 实现某主机某用户可以访问 Mycat,而其他主机用户禁止访问。 ####设 置白名单
配置只有192.168.179网段的主机可以通过mycat用户访问 2. 黑名单 可以通过设置黑名单, 实现 Mycat 对具体 SQL 操作的拦截, 如增删改查等操作的拦截。
配置禁止mycat用户进行删除操作
可以设置的黑名单 SQL 拦截功能列表