keepalived实现mysql高可用

说明:需要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互信通信

[[email protected] ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘

[[email protected] ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

[[email protected] ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘

[[email protected] ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

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

使用ntp服务器同步时间

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

4)配置本地解析:

[[email protected] ~]# vim /etc/hosts

202.207.178.6 node1

202.207.178.7 node2

[[email protected] ~]# 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 {

[email protected]

}

notification_email_from [email protected]

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 [email protected]‘202.207.178.%‘ identified by ‘123456‘;

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

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

# mysql -uroot -h202.207.178.4 -p

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

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

欢迎批评指正!

时间: 2024-07-28 15:30:51

keepalived实现mysql高可用的相关文章

基于Keepalived实现Mysql高可用

前言 由于最近要使用Mysql数据库,而目前公司服务器与业务有限,于是只使用了一台Mysql.所以,问题很明显,如果这台Mysql坏了,那么将会影响整个公司的业务,所以考虑做Mysql的高可用方案.目前,Mysql的高可用方案很多,这里选择Keepalived+Mysql实现高可用. 环境介绍 ID OS IP Role node1 CentOS6.5_X64 192.168.1.159 Master node2 CentOS6.5_X64 192.168.1.160 Slave  Mysql

整个MHA+keepalived+lvs+mysql高可用架构配置说明

整个MHA+keepalived+lvs+mysql高可用架构配置说明1.1. 环境简介1.1.1.vmvare虚拟机,系统版本CentOS7.5 x86_64位最小化安装,mysql的版本5.7.21,1.1.2.虚拟机器的ssh端口均为默认22,1.1.3.虚拟机的iptables全部关闭,1.1.4.虚拟机的selinux全部关闭,1.1.5.虚拟机服务器时间全部一致 ntpdate 0.asia.pool.ntp.org1.1.6.3台机器的ssh端口为22**1.2.此次试验采用的是3

LVS+Keepalived实现MySQL高可用

LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(链接:http://www.cnblogs.com/ahaii/p/6307648.html)

基于Keepalived的MySQL高可用

keepalived负责的是故障转移,至于故障转以后的节点之间数据的一致性问题依赖于具体的复制模式.不管是主从.一主多从还是双主.集群节点个数.主从具体的模式无关(常规复制,半同步复制,GTID复制,多线程复制,甚至可以是MGR)都没有直接的关系.个人认为,MySQL高可用方向,MGR+自动故障转移中间件(keepalived),应该是是个趋势.怎么感觉MHA的配置又臭又长. keepalive的安装 1,参考http://blog.51cto.com/afterdawn/1888682 1.官

使用KeepAlived搭建MySQL高可用环境

使用KeepAlived搭建MySQL的高可用环境.首先搭建MySQL的主从复制在Master开启binlog,创建复制帐号,然后在Slave输入命令 change master to master_host='192.168.1.70', master_port=3306, master_user='xx', master_password='xx'; 然后使用start slave开启复制. 然后编译安装KeepAlived进入keepalived-1.2.12目录然后使用./configu

mysql-mmm、mysql-proxy、和keepalived的mysql高可用方案

Mysql-mmm就是mysql主主复制管理器,实现的功能有: 高可用性(类似keepalived的vip浮动技术) 同个时间只提供一台数据库写操作,保证数据库的一致性. 提升slave为master,延续双主的架构 首先先搭建好数据库主主,主从架构:类似图:(不再叙述) 在每台数据库中为monitor的机器来监控当前的同步情况: Grant replivation client to '[email protected]'ip' identified by 'password'   创建一个m

mysql主主同步机制+keepalived实现MySQL高可用

一.概述 MySQL-HA目前有很多实现方案,今天就用MySQL双master+keepalived来实现MySQL-HA. 在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性. 然后用keepalived实现虚拟IP,通过keepalived来实现MySQL故障时自动切换. 二.实验环境 虚拟机 IP 操作系统 vCPU/个 内存/G 硬盘/G 虚拟IP Mysql01 192.168.1.100 Ubuntu14.04 1 1 20 192.168.1.

企业中MySQL高可用集群架构三部曲之MM+keepalived

各位老铁们,老张与大家又见面了.看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可.我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战经验分享出来,我们可以一起探讨,共同进步.也保证今后只要一有空就更新博文,推出更多的干货. 我的学生经常对我说:"张老师,每次我遇到报错,有时还是会百度,但是最烦的是不知道百度哪篇帖子说的是正确的".其实这些呢,都是因为自己还没有对MySQL数据库核心知识的不熟悉,和对技术掌握的不牢固.平时下得功夫还是不到

keepalived结合MHA实现mysql高可用

本例结合本博另一篇文章 MHA-大杀器实现MYSQL单主宕机时,VIP漂移实现高可用,环境请参考上一篇文章 本例使用keepalived-1.1.20.tar.gz版本 [[email protected] keepalived-1.1.20]# ./configure --sysconf=/etc/ #此项表示设置keepalived的根目录 如果编译报错"configure: error: Popt libraries is required" 则yum -y install po