Linux:部署keepalived为mycat实现高可用【keepalived+mycat】

使用keepalived给mycat实现高可用

机器准备:
mysql机器:192.168.186.162 192.168.186.163
mycat: 192.168.186.161 192.168.186.160
client: 192.168.186.123

实验拓扑图:
在这里插入图片描述
(为了方便实验,以下全部使用yum安装)
关闭所有机器的防火墙和selinux

部署MySQL:192.168.186.162 192.168.186.163

yum -y install mariadb-server mariadb
systemctl start mariadb
mysql -uroot -p                             #  (默认没有密码,回车直接登录)
#以下是数据库内的操作
grant all on *.* to 'mycat'@'192.168.186.161' identified by 'mycat';
grant all on *.* to 'mycat'@'192.168.186.160' identified by 'mycat';
create database shared;
use shared;
create table slaver( id int );
insert into slaver values (162);    #在写的机器插入162,在读的机器插入163,待会可以验证mycat读写分离是否正常
insert into slaver values (163);
【(为了检测实验结果,这里就不配置主从了)】

部署mycat: 192.168.186.161 192.168.186.160

1.安装java环境

 # tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/     
  # ln -s /usr/local/jdk1.8.0_181/ /usr/local/java
  # vim /etc/profile.d/java.sh
    export JAVA_HOME=/usr/local/java
    export PATH=$JAVA_HOME/bin:$PATH
  # . /etc/profile.d/java.sh
  # java -version
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2.安装mycat

 # tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/

3.配置server.xml

#vim server.xml
  ...
  <user name="mycat">                                                        
        <property name="password">mycat</property>
        <property name="schemas">TESTDB</property>          

  </user>
  ...
  <user name="user">                                                     
        <property name="password">user</property>
        <property name="schemas">TESTDB</property>
        <property name="readOnly">true</property>
  </user>
  ...

4.配置schema.xml, 这个文件用来配置分库分表及读写分离.
#vim schema.xml
在这里插入图片描述

echo wrapper.startup.timeout=300 >> /usr/local/mycat/conf/wrapper.conf

5.启动mycat服务

#/usr/local/mycat/bin/mycat start &

6.验证
连接工作端口,client端连接:

mysql -umycat -pmycat -h192.168.186.161 -P8066 

#操作数据库

use TESTDB;
select * from slaver;    (多次执行只能看见163)
insert into slaver values (111);   (回到192.168.186.162的数据库可以看到111,但是192.168.186.163上没有111)
【达到上述效果则说明mycat配置成功】

部署keepalived: 192.168.186.161 192.168.186.160

yum -y install keepalived
vim /etc/keepalived/keepalived.conf

161配置如下:

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script mycat {
    script "/usr/bin/netstat -ntlp|grep 8066"
    interval 3
    weight -30
    fall 2
    rise 1
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.186.100
    }
    track_script {
        mycat
    }
}

160配置如下:

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.186.100
    }
}
systemctl start keepalived
iptables -t filter -D INPUT 1【哪台机器获取VIP,iptables会自动添加防火墙,所以要删掉,否则无法连接】

测试:
开启服务之后,VIP在192.168.186.161
client端连接:

mysql -umycat -pmycat -h192.168.186.100 -P8066

连接成功证明keepalivd部署成功

测试VIP是否跳转
在161的机器上:

pkill java

到160查看

ip a

看到有192.168.186.100
client端连接:

mysql -umycat -pmycat -h192.168.186.100 -P8066

连接成功,证明keepalivd+mycat部署成功,实验到此结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值