MySQL高可用,MySQL互为主从+keepalived。

一:环境:centos7.5 MySQL5.7
192.168.3.222 master
192.168.3.158 slave
192.168.3.223 VIP

二:首先做出双主来
以下操作两台机器都要做
2.1:首先域名解析:

###vim /etc/hosts (两台都做)
192.168.3.222 master
192.168.3.158 slave

2.2:下载MySQL5.7

### wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
### rpm -ivh mysql57-community-release-el7-8.noarch.rpm
### yum install mysql-server

2.3:启动并修改密码

### systemctl start mysqld
### grep pass /var/log/mysqld.log
### mysqladmin -u root -p‘bJZY,Z0kMdcQ‘ password ‘Cherry`123‘     //修改密码

2.4:修改两台机器的配置

修改master上的配置
### vim /etc/my.cnf
    [mysqld]
    log-bin
    server-id=1
    gtid_mode=ON
    enforce_gtid_consistency=1
修改slave上的配置
### vim /etc/my.cnf
    [mysqld]
    log-bin
    server-id=2
    gtid_mode=ON
    enforce_gtid_consistency=1

2.5:重启两台机器并进行授权
重启两台机器
### systemctl restart mysqld
进入主数据库得到binlog日志文件名和偏移量

   mysql> show master status;

在master创建用户

   mysql> grant replication slave on *.* to ‘iii‘@‘192.168.3.158‘ identified by  ‘Cherry321`‘;

去slave上执行

   change master to master_host=‘192.168.3.158‘,master_user=‘iii‘,master_password=‘Tiger321`‘,master_port=3306,master_log_file=‘master-bin.000003‘,master_log_pos=194;                  //master-bin.000003‘,master_log_pos=194为文件名和偏移量 

启动slave

   mysql> start slave;

在从库查看

   mysql>show slave status\G;              //Slave_IO_Running:YES    Slave_SQL_Running:YES为成功

三:双主搭建完成,然后在master上做一下虚拟IP,绑定网卡
3.1:在master上copy一份网卡文件


cp /etc/sysconfig/network-scripts/ifcfg-ens33  /etc/sysconfig/network-scripts/ifcfg-ens37
配置文件如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=9f0c5e90-b5e5-44f4-95ce-9f97d19bf880
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.3.223
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=8.8.8.8
DNS2=114.114.114.114

3.2重启网卡

###systemctl restart network

四:下载keepalived,修改其配置文件

4.1:两台机器都下载keepalived
yum -y install keepalived

4.2:修改配置文件,修改之前最好先备份一下。。。
[[email protected] keepalived]# vim keepalived.conf
! Configuration File for keepalived      //表示注释

global_defs {

  router_id mysql-1         //表示运行keepalived服务器的标识 

}

vrrp_instance VI_1 {
   state BACKUP                     //指定keepalived的角色,两台配置此处均是backup,这为backup将根据优先级决定主或从
   interface ens33    //指定HA检测网络的接口
   virtual_router_id 51  //虚拟路由标识,这个标识是一个数字(取值在0~255之间,用来区分多个instance的VRRP组播),同一个vrrp实例使用唯一的标识
                                  确保和slave相同,同网内不同集群此项不同,否则发生冲突
   priority 100         //用来选举master的,要成为master,该项取值范围是1-255,默认为100,slave设为50
   advert_int 1       //发送vrrp包的间隔时间
   nopreempt          //不抢占
   authentication {
       auth_type PASS
       auth_pass 1111
   }

   virtual_ipaddress {               //VIP地址

       192.168.3.223

   }

}

virtual_server 192.168.3.223 3306 {      //设置虚拟服务器,需要指定虚拟IP地址和服务端口。
   delay_loop 2             //运行情况检查时间,单位为秒
   lb_algo rr    //设置后端调度算法
   lb_kind DR
   persistence_timeout 60
   protocol TCP

   real_server 192.168.3.222 3306 {    //配置服务节点,需要指定real server的真实IP地址和端口。
       weight 3             //配置服务节点的权值,权值大小用数字标识,数字越大,权值越高,设置权值大小为了区分不用性能的服务器
       notify_down   /root/keepalived_check_mysql.sh                //检测到realserver的MySQL服务down后执行的脚本位置
       TCP_CHECK {
            connect_timeout 3                   //连接超时时间
            nb_get_retry 3                         //重连次数
            delay_before_retry 3                //重连间隔时间
            connect_port 3306                 //健康检查端口
       }
   }
}

下面为slave的配置

4.3:slave也修改keepalived的配置
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {

  router_id mysql-2

}

vrrp_instance VI_1 {
   state BACKUP
   interface ens33
   virtual_router_id 51
   priority 50
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }

   virtual_ipaddress {

       192.168.3.223

   }

}

virtual_server 192.168.3.223 3306 {
   delay_loop 2
   lb_algo rr
   lb_kind DR
   persistence_timeout 60
   protocol TCP

   real_server 192.168.3.158 3306 {
       weight 3
       notify_down   /root/keepalived_check_mysql.sh
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 3306
       }
   }
}

五:两台机器修改之后添加mysql简易的状态检测脚本

### vim /root/keepalived_check_mysql.sh
#!/bin/bash
/usr/bin/mysql -h 192.168.3.222 -uroot -p‘Tiger`123‘ -e "show status;" &>/dev/null
if [ $? -ne 0 ] ;then
        systemctl stop keepalived
fi

加上可执行权限

### chmod 755 /root/keepalived_check_mysql.sh

启动keepalived,关闭master 查看IP跳动

原文地址:http://blog.51cto.com/14051712/2328757

时间: 2024-08-06 14:20:23

MySQL高可用,MySQL互为主从+keepalived。的相关文章

mysql高可用研究之主从+MHA架构

最近在研究mysql的高可用架构,自己想总结下常用的高可用方案都有哪些.有哪些优缺点以及应用的场景?搞得是头昏脑涨,天昏地暗,看了诸多资料,每次都觉得公说公有理婆说婆有理.其实嘛,大家都没有说错,只不过适合自己的才是最正确的选择.今天就从比较常用的主从+MHA说起. 学习一种新的架构还是软件,最好还是先从了解它的原理开始,这样才能在做实验时测试出它的优势和弱势. ###################################################################

mysql高可用架构方案之一(keepalived+主主双活)

Mysql双主双活+keepalived实现高可用 目录 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... 4 3.安装设置MYSQL半同步... 5 4.Keepalived实现MYSQL的高可用... 11 1.前言 最近研究了下高可用的东西,这里总结一下mysql主主双活的架构方案,整体上提高服务的高可用性,出现问题也不需要手动切换,提高整体的维护效率.确定改造的话,只需要让他们的程序中使用vip地址就可以,实现起来比较

mysql高可用研究(二) 主从+MHA+Atlas

关于Atlas的详细介绍请访问:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md 为什么要使用Atlas?应用程序直连数据库不好吗?还要在前面加上一层代理,会不会降低应用的读写性能?会不会增加维护管理的成本?我想这是每个使用atlas之前的疑问. 1.为什么要使用Atlas? 我们使用atlas,主要使用它的读写分离和从库负载均衡功能.因为咱们这读业务远远多于写,故采用读写分离的架构再合适不过了.之前实现读写分离,一般都是通过应

(5.9)mysql高可用系列——正常主从切换测试

[0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制. 主库IP:192.168.1.201 端口:3306 从库IP:192.168.1.202 端口:3306 [1]主从切换 [1.1]主从都需要开二进制日志,切换的时候,确认从库的数据时最新的-- 主库:192.168.1.201 set global read_only=1; -- 主库设置全局只读模式.flush lo

mysql高可用探究(二)Lvs+Keepalived+Mysql单点写入主主同步高可用方案

global_defs {   notification_email {        [email protected] } notification_email_from [email protected] smtp_server smtp.mail.sina.com smtp_connect_timeout 30 router_id LVS1 }   vrrp_sync_group test { group { loadbalance } }   vrrp_instance loadbal

MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

转自 MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移 - KK ——专注数据 - 博客频道 - CSDN.NEThttp://blog.csdn.net/kk185800961/article/details/51115264# 系统信息: mysql主库 192.168.1.152 CentOS 5.6 mysql 5.6.22 mysql从库 192.168.1.153 CentOS 5.6 mysql 5.6.22 VIP 192.168.1.150 my

MySQL高可用系列之MHA(二)

一.参数说明 MHA提供了一系列配置参数,深入理解每个参数的具体含义,对优化配置.合理使用MHA非常重要,很多高可用性也都是通过合理配置一些参数而实现的. MHA包括如下配置参数,分别说明如下: hostname/ip/port (Local Only) hostname为MySQL Server的IP地址或主机名: ip为MySQL Server的IP地址,缺省从$hostname中获取:port为MySQL Server的端口号,缺省为3306 ssh_host/ssh_ip/ssh_por

MySQL高可用之——keepalivd+互为主从

目标:配置一个keepalived双机热备架构,并配置主从复制 规划: master1     zlm177     192.168.17.177 master2     zlm188     192.168.17.188 vip                             192.168.17.166 环境: Red Hat Enterprise Linux 6.4 Percona Server 5.6.15 一.软件安装 可以去官网http://www.keepalived.or

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

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

mysql高可用+keepalived

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即俩台mysql服务器如果其中有一台mysql服务器挂掉后,另外一台就能立刻接替进行工作. MYSQL的高可用方案一般有 Keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等 比较常用的是keepalived+双主MHA和PXC 这次主要介绍利用keepalived实现MYSQL数据库的高可用. 基本思路:俩台MYSQL互为主从关系(双主),通过keepalived配置配置虚拟IP,实现当