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高可用!


                              欢迎批评指正!


相关内容

热门资讯

10岁四川少年在巴厘岛勇救冲浪... 红星新闻记者获悉,5月19日,四川攀枝花市十九中小龙箐学校收到一封来自四川省帆船帆板运动管理中心的表...
战鹰列阵!直击南部战区空军跨昼... 近日,南部战区空军航空兵某旅紧贴实战要求,组织多批次、全要素、高强度跨昼夜飞行训练,锤炼部队全天候作...
亨特·拜登首次承认“硬盘门”为... 美国极右翼评论员坎迪斯·欧文斯5月21日发布了对美国前总统拜登儿子亨特·拜登的专访,后者首次承认笔记...
特朗普称将向波兰增派5000名... △美军士兵(资料图)当地时间5月21日,美国总统特朗普在其社交平台“真实社交”发文称,美国将向波兰额...
长三角最新一批创新联合体出炉 ... 上证报中国证券网讯(记者 宋薇萍 张良)5月21日在上海召开的第八届长三角一体化发展高层论坛上,第三...
原创 流... 谷歌正式开启新一轮 AI 搜索广告大规模测试,借助 Gemini 大模型推出多款全新广告形式,将付费...
天津高空跳伞遇难女子原计划今年... 极目新闻记者 舒隆焕天津高空跳伞项目发生事故,一名女员工和教练遇难(极目新闻5月18日报道)。记者从...
这部电影,道尽了中国人的情义二... 12015年,我还在深圳工作。一个周末,我和小小明妈妈带着小小明,开车好几个小时,就为了看一眼大名鼎...
原创 宇... 「宇宙探索·伽马射线暴——宇宙中最亮的爆炸」 一、什么是伽马射线暴? 1967年,美国Vela...
2026年外贸企业谷歌SEO选... 一、引言:流量困局与增长迷思 2026年,外贸企业面临的营销困境正从“流量获取难”演变为“转化效率低...