keepalived实现mysql高可用
admin
2023-05-30 14:22:17
0

说明:需要3个节点,主节点(202.207.178.6)、从节点(202.207.178.7)、测试节点(202.207.178.8),虚拟地址:202.207.178.4。配置实现mysql数据库主从复制,并使用keepalived实现高可用,可以实现主数据库down机时,从数据库可用!

mysql主从复制详见本人博客http://10927734.blog.51cto.com/10917734/1868323

前提:

由于是高可用服务,首先配置高可用服务实现的一些基本条件

1)节点名称必须跟uname -n命令的执行结果一致

node1:

# hostname node1

# vim /etc/sysconfig/network

HOSTNAME=node1

node2:

# hostname node2

# vim /etc/sysconfig/network

HOSTNAME=node2

2)节点之间必须通过ssh互信通信

[root@node1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''

[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@202.207.178.7

[root@node2 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''

[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@202.207.178.6

3)集群各节点之间时间必须同步

使用ntp服务器同步时间

ntpdate ip(配置了ntp服务的主机地址)

4)配置本地解析:

[root@node1 ~]# vim /etc/hosts

202.207.178.6 node1

202.207.178.7 node2

[root@node1 ~]# scp /etc/hosts node2:/etc/

一、安装keepalived,实现高可用

在主节点上:

1、安装keepalived

# tar xf keepalived-1.2.1.tar.gz

# cd keepalived-1.2.1

# ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-642.11.1.el6.i686/

# make && make install

注意:

可能需要安装此包:

# yum install popt-devel

发现/usr/src/kernels/为空,需要安装内核源码

# yum install kernel-devel

2、配置keepalived

1)设置一个变量

# DIR=/usr/local/

2)执行如下语句,将keepalived的配置文件放置在/etc下相关目录中

# cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

# cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p 

             /etc/keepalived

# cp $DIR/sbin/keepalived /usr/sbin/

3)为keepalived提供配置文件

# cd /etc/keepalived/

# vim keepalived.conf(添加以下内容)

! Configuration File for keepalived

global_defs {

  notification_email {

 2663154088@qq.com

  }

  notification_email_from wgkgood@139.com

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id LVS_DEVEL

}

# VIP1

vrrp_instance VI_1 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 100

advert_int 5

  #非抢占 nopreempt

authentication {

auth_type PASS

auth_pass 2222

}

virtual_ipaddress {

202.207.178.4

}

}

virtual_server 202.207.178.4 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

persistence_timeout 60

protocol TCP

real_server 202.207.178.6 3306 {

weight 100

notify_down /data/sh/mysql.sh

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

4)启动服务

# /etc/init.d/keepalived restart

# ps -ef | grep keepalived

此时发现服务已经启动!

# tail -fn 100 /var/log/messages

此时发下一直滚屏,是缺少一个模块,下面加载此模块

# modprobe ip_vs

# /etc/init.d/keepalived restart

# tail -fn 100 /var/log/messages

此时一切正常

在从节点上:

配置同主节点,只是在配置文件中修改以下几项即可:

state BACKUP

priority 90

real_server 202.207.178.7 3306

二、配置相关操作,并测试

1、在主从节点上分别添加如下两个文件并授权,实现在一方的数据库down机时停止keepalived,主从角色实现切换

# vim /data/sh/mysql.sh

/etc/init.d/keepalived stop

# chmod +x /data/sh/nginx.sh

2、在主从节点上分别对数据库授权

mysql>grant all on fsy.* to root@'202.207.178.%' identified by '123456';

3、此时就可以开始测试了

1)再启动一台虚拟机,用此虚拟机连接数据库

# mysql -uroot -h302.207.178.4 -p

2)在主节点停止mysql数据库,此时会发现测试节点的数据库依然连接正常!

到此为止,已经使用keepalived实现了mysql高可用!


                              欢迎批评指正!


相关内容

热门资讯

手机品牌排行榜前十是哪几个? 手机品牌排行榜并非固定不变,而是基于市场销量、用户口碑及技术创新等多维度动态评估的结果,目前华为、苹...
SpaceX火箭残骸,撞上月球 北京时间5日下午2点35分,一枚自2025年起漂浮在地月空间的SpaceX公司猎鹰9号火箭二级残骸,...
德国高温致死1.19万人,为2... 新华社柏林8月6日电(记者车云龙 李超)德国罗伯特·科赫研究所6日发布报告说,截至7月26日,德国今...
敬一丹个人账号更新,此前曾置顶... 8月6日晚9点30分,前央视主持人敬一丹的个人微信公众号更新,发布题为《敬一丹|走过·立秋》的文章,...
部分美国AI模型在测试中被发现... 新华社伦敦8月5日电(记者张家伟)英国人工智能安全研究所发布的一份新报告显示,在该研究所实施的网络安...
聚焦联碱余热回收 共商节能降碳... 来源:中国日报网 近日,万润科技旗下万润新能源与双环科技、中国科学院理化技术研究所热力过程节能中心联...
存储暴涨不是坏事!WiFi 8... 来源:智能制造网 8月5日消息,本轮存储芯片的持续暴涨看起来全是负面影响,其实也不全是坏事,上游核心...
滴滴旗下99与巴西租车企业Mo... 新浪科技讯 8月6日下午消息,滴滴旗下巴西一站式本地生活服务平台99与巴西汽车租赁企业Movida签...
联黎部队:以军单日向黎发射11... △资料图联合国驻黎巴嫩临时部队(联黎部队)6日发表声明称,维和人员5日记录到以色列国防军共向黎巴嫩发...
常刷短视频的家长注意了!4招教... 当前,刷短视频已成为人们获取信息的重要途径。然而,部分账号为博取流量、推销课程或制造焦虑,通过AI合...