安装配置keepalived实现mysql高可用

3 篇文章 0 订阅
2 篇文章 0 订阅

安装配置keepalived实现mysql高可用

  1. 在编译之前先安装OpenSSL,否则会报错

    yum -y install openssl-devel
    
    yum -y install libnl libnl-devel
    
    yum -y install libnfnetlink-devel
    
  2. 安装keepalived

    # 下载keepalived-2.2.2.tar.gz,上传到服务器,如:/home/keepalived
    # 解压
    tar -xvf keepalived-2.2.2.tar.gz
    # 安装编译
    ./configure --prefix=/home/keepalived/keepalived-2.2.2
    make && make install
    
  3. 设置开机启动

    # 设置开机启动
    cp /home/keepalived/keepalived-2.2.2/etc/sysconfig/keepalived  /etc/sysconfig/keepalived
    
    cp /home/keepalived/keepalived-2.2.2/sbin/keepalived /usr/sbin/keepalived
    ln -s /home/keepalived/keepalived-2.2.2/sbin/keepalived /usr/sbin/keepalived
    ln -sf /home/keepalived/keepalived-2.2.2/sbin/keepalived /usr/sbin/keepalived
    
    cp /home/keepalived/keepalived-2.2.2/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived
    
    mkdir /etc/keepalived
    cp /home/keepalived/keepalived-2.2.2/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
    
    # 加为系统服务
    chkconfig --add keepalived 
    # 开机启动
    chkconfig keepalived on
    # 查看开机启动的服务
    chkconfig --list
    systemctl list-unit-files
    
    # 启动、关闭、重启
    service keepalived start
    service keepalived stop
    service keepalived restart
    
  4. 修改配置文件etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         xxx@163.com
       }
       notification_email_from xxx@163.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id 10.170.207.220         #当前主机IP
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0                  #根据实际网络接口进行更改
         virtual_router_id 124	        #保持一致[1, 255]
        priority 100                    #优先级,master设置为100
        unicast_src_ip  10.170.207.220  #当前主机IP
        unicast_peer {              
            10.170.207.221              #对端主机IP
            10.170.207.222 			   #对端主机IP
        }
        advert_int 1
        nopreempt                      #不主动抢占资源,只在master上设置     #从节点注释掉nopreempt 主动抢占资源
        authentication {
            auth_type PASS
            auth_pass power@keepalived@his2021
        }
        virtual_ipaddress {
            10.170.207.142
        }
    }
    
    virtual_server 10.170.207.142 3306 {
        delay_loop 2
        #lb_algo rr
        #lb_kind NAT
        persistence_timeout 50
        protocol TCP
    
        real_server 10.170.207.220 3306 {               #检测本地mysql
            weight 3
            notify_down /home/mysql_keepalived_sh/kill_keepalived.sh    #当mysql服务down时,执行此脚本,杀死keepalived实现切换
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         xxx@163.com
       }
       notification_email_from xxx@163.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id 10.170.207.221         #当前主机IP
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0                  #根据实际网络接口进行更改
         virtual_router_id 124	        #保持一致[1, 255]
        priority 100                    #优先级,master设置为100
        unicast_src_ip  10.170.207.221  #当前主机IP
        unicast_peer {              
            10.170.207.220              #对端主机IP
            10.170.207.222 			   #对端主机IP
        }
        advert_int 1
        # nopreempt                     #从节点注释掉nopreempt 主动抢占资源
        authentication {
            auth_type PASS
            auth_pass power@keepalived@his2021
        }
        virtual_ipaddress {
            10.170.207.142
        }
    }
    
    virtual_server 10.170.207.142 3306 {
        delay_loop 2
        #lb_algo rr
        #lb_kind NAT
        persistence_timeout 50
        protocol TCP
    
        real_server 10.170.207.221 3306 {               #检测本地mysql
            weight 3
            notify_down /home/mysql_keepalived_sh/kill_keepalived.sh    #当mysql服务down时,执行此脚本,杀死keepalived实现切换
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         xxx@163.com
       }
       notification_email_from xxx@163.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id 10.170.207.222         #当前主机IP
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0                  #根据实际网络接口进行更改
        virtual_router_id 124	        #保持一致[1, 255]
        priority 100                    #优先级,master设置为100
        unicast_src_ip  10.170.207.222  #当前主机IP
        unicast_peer {              
            10.170.207.220              #对端主机IP
            10.170.207.221 			   #对端主机IP
        }
        advert_int 1
        # nopreempt                     #从节点注释掉nopreempt 主动抢占资源
        authentication {
            auth_type PASS
            auth_pass power@keepalived@his2021
        }
        virtual_ipaddress {
            10.170.207.142
        }
    }
    
    virtual_server 10.170.207.142 3306 {
        delay_loop 2
        #lb_algo rr
        #lb_kind NAT
        persistence_timeout 50
        protocol TCP
    
        real_server 10.170.207.222 3306 {               #检测本地mysql
            weight 3
            notify_down /home/mysql_keepalived_sh/kill_keepalived.sh    #当mysql服务down时,执行此脚本,杀死keepalived实现切换
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    
  5. kill_keepalived.sh配置

    # 新建文件夹
    mkdir -p /home/mysql_keepalived_sh
    cd /home/mysql_keepalived_sh
    touch kill_keepalived.sh
    vim kill_keepalived.sh
    
    #!/bin/bash
    pkill keepalived
    
    # 添加可执行权限
    chmod +x kill_keepalived.sh
    
  6. 重启mysql、keepalived脚本restart_mysql_keepalived.sh

    cd /home/mysql_keepalived_sh
    touch restart_mysql_keepalived.sh
    
    
    
    #!/bin/bash
    
    # 重启mysql,需要先加入开机启动配置
    /etc/init.d/mysql3306 restart
    
    # 重启keepalived
    service keepalived restart
    
    # 添加可执行权限
    chmod +x restart_mysql_keepalived.sh
    
  7. 查看日志文件

    tail -f /var/log/messages
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值