美文网首页Mysql&Mariadb
centos7使用keepalived和mysql配置mysql

centos7使用keepalived和mysql配置mysql

作者: 匿名wm | 来源:发表于2018-02-01 14:20 被阅读0次

    1.keepalived安装

    参考centos7下keepalived1.4.0安装启动卸载章节:https://www.jianshu.com/p/f987f7e449ab

    2.mysql主主配置

    参考centos7下mysql5.7主主复制章节:https://www.jianshu.com/p/ed10e4162c68

    3.keepalived配置

    VIP:192.168.133.142,centos7

    IP1:192.168.133.140,centos7

    IP2:192.168.133.141,centos7

    其中IP1的keepalived配置(本人配置文件在/etc/keepalived/keepalived.conf中)内容如下:

    ! Configuration File for keepalived

    global_defs {

      router_id mysql-1

    }

    vrrp_instance VI_1 {

        state BACKUP

        interface eth0

        virtual_router_id 51

        priority 100

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.133.142//VIP地址

        }

    }

    virtual_server 192.168.133.142 3306 {

        delay_loop 6

        lb_algo rr

        lb_kind NAT

        persistence_timeout 50

        protocol TCP

        real_server 192.168.133.140 3306 {

            weight 3

            notify_down /etc/keepalived/bin/mysql.sh  //这个配置在keepalived1.4.0中好像有点问题,后续会说

            TCP_CHECK {

                     connect_timeout 3

                     retry 3

                     delay_before_retry 3

                     connect_port 3306

            }

        }

    }

    IP2的keepalived配置内容如下:

    ! Configuration File for keepalived

    global_defs {

      router_id mysql-2

    }

    vrrp_instance VI_1 {

        state BACKUP

        interface eth0

        virtual_router_id 51

        priority 50

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.133.142//VIP地址

        }

    }

    virtual_server 192.168.133.142 3306 {

        delay_loop 6

        lb_algo rr

        lb_kind NAT

        persistence_timeout 50

        protocol TCP

        real_server 192.168.133.141 3306 {

            weight 3

            notify_down /etc/keepalived/bin/mysql.sh

            TCP_CHECK {

                          connect_timeout 3

                          retry 3

                          delay_before_retry 3

                          connect_port 3306

            }

        }

    }

    上述配置配好后,重启keepalived:service keepalived restart

    (4)验证

    本人的VIP地址所属服务器是centos7,每次也需要开启这个服务器才能够使用这个IP,好像也有其他方式不需要开启这个服务器,具体就没去了解了。

    开启后首先在宿主机win7下使用navicate分别使用VIP、IP1、IP2连接数据库,如果连接不同请考虑是否是网络或者防火墙问题。

    连接成功后,可以看到VIP默认是在IP1上,这时停止IP1上的mysql服务:service mysqld stop。

    网上说停止后keepalived本应该能通过notify_down监测到mysql停止事件,执行对应notify_dowm设置的mysql.sh脚本,停止keepalived运行,只有停止IP1上的keepalived运行,VIP才能自动切换到IP2上。(也有说是当real server宕掉或启动时才会执行这里的脚本)

    但本人这里并没有执行该脚本,可能因为keepalived的版本原因,本人是直接通过命令:service keepalived stop方式停止的,停止后,在win7的navicate上重新用VIP地址连接,连接成功说明已经切换到IP2上了。

    附注:

    mysql.sh内容

    #!/bin/bash

    pkill keepalived

    /sbin/ifdown eth0 && /sbin/ifup eth0

    即杀死keepalived线程,然后重新启动网络。但是本人使用时,当mysql服务停止,并未执行该脚本。这个最新版本的keepalived里面有些属性有点变动,比如TCP_CHECK 里的retry关键字,在低版本是nb_get_retry。由于未找到新版本的配置属性说明,这里就没有太多深入去了解。

    相关文章

      网友评论

        本文标题:centos7使用keepalived和mysql配置mysql

        本文链接:https://www.haomeiwen.com/subject/xxrlzxtx.html