images\cherry_red.png1 MySQL学习笔记
      images\cherry_blue.png1.1 LeetCode每日一题
         images\cherry_orange.png1.1.1 183. 从不订购的客户
      images\cherry_blue.png1.2 数据库特性
      images\cherry_blue.png1.3 正则表达式
         images\cherry_orange.png1.3.1 MySQL正则表达式
         images\cherry_orange.png1.3.2 Hive正则表达式
      images\cherry_blue.png1.4 MySQL基础操作语句
         images\cherry_orange.png1.4.1 增加
            images\cherry_cyan.png1.4.1.1 create
            images\cherry_cyan.png1.4.1.2 insert
         images\cherry_orange.png1.4.2 删除
            images\cherry_cyan.png1.4.2.1 drop
            images\cherry_cyan.png1.4.2.2 delete
         images\cherry_orange.png1.4.3 查询
         images\cherry_orange.png1.4.4 修改
            images\cherry_cyan.png1.4.4.1 update
            images\cherry_cyan.png1.4.4.2 alter
         images\cherry_orange.png1.4.5 基础操作命令
            images\cherry_cyan.png1.4.5.1 union
            images\cherry_cyan.png1.4.5.2 like
         images\cherry_orange.png1.4.6 复制表
         images\cherry_orange.png1.4.7 replace
      images\cherry_blue.png1.5 MySQL数据误删恢复
         images\cherry_orange.png1.5.1 docker远程连接MySQL报错
      images\cherry_blue.png1.6 MySQL主从之间的关系
         images\cherry_orange.png1.6.1 Binlog
      images\cherry_blue.png1.7 MySQL基本操作命令
         images\cherry_orange.png1.7.1 权限授予
         images\cherry_orange.png1.7.2 数据备份
         images\cherry_orange.png1.7.3 主从配置
         images\cherry_orange.png1.7.4 主从(主主)互用配置
         images\cherry_orange.png1.7.5 拉链表用途
            images\cherry_cyan.png1.7.5.1 拉链表
         images\cherry_orange.png1.7.6 字段类型转换
      images\cherry_blue.png1.8 Keepalived+MySQL 高可用架构
      images\cherry_blue.png1.9 HAproxy+MySQL 负载均衡
      images\cherry_blue.png1.10 Mycat+ MySQL 读写分离(高可用)优化
         images\cherry_orange.png1.10.1 Mycat配置文件详解
         images\cherry_orange.png1.10.2 安装配置Mycat
         images\cherry_orange.png1.10.3 MySQL分库操作
         images\cherry_orange.png1.10.4 Mycat测试实验
      images\cherry_blue.png1.11 MHA
         images\cherry_orange.png1.11.1 MHA初始化配置
      images\cherry_blue.png1.12 MySQL索引结构
      images\cherry_blue.png1.13 MySQL索引类型
      images\cherry_blue.png1.14 SQL执行计划(explain)
      images\cherry_blue.png1.15 SQL优化
      images\cherry_blue.png1.16 慢查询日志
      images\cherry_blue.png1.17 Druid监控
首先你得最好拥有 MySQL(主主互用)一个配置

两台MySQL 服务器 主从互用
192.168.52.200
192.168.52.201

同时安装Keepalived 程序

yum -y install keepalived

若出现依赖包问题,一般可能是,MySQL版本配置文件过于高了,需要手动的进行修改

修改配置文件

Keepalived 有两种类型的节点,一种是MASTER 另外一种是 BACKUP
目前采用的是 两台类型都为 BACKUP的节点
# 注意一点 virtual_router_id 70 多节点需要一致性的
并且虚拟virtual_ipaddress ip 不能与其他服务器节点IP发生冲突,要不然会存在着问题!
并且格式!注意是否输入正确,否则启动将会失败

在多台服务器节点修改一下配置文件即可,若必要的话,也可以根据主机性能修改权重,来达到VIP漂移优先的情况
另外也需要注意一下防火墙问题

vim /etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_DEVEL  #节点名,一般使用默认的就可以
}

vrrp_script chk_mysql {
    script "/etc/keepalived/check_mysql.sh" #检测nginx脚本的路径
    interval 2  #运行脚本的间隔时间
    weight -20  #变更的权重
}

vrrp_instance VI_1 {
    state BACKUP  
    #mcast_src_ip 
    interface ens33  #绑定的网卡,可以通过ifconfig查看网卡信息
    virtual_router_id 70  #虚拟路由标识,同一组的必须相同
    priority 100  #权重
    nopreempt  #定义为非抢占式,因为多次主备切换对请求量大的服务器不太好
    
    advert_int 1  #与组内其他节点发送心跳的间隔:s
    virtual_ipaddress {
        192.168.52.220
    }  #绑定的虚拟ip组
    track_script {
        chk_mysql
    }  #执行前面声明的脚本
}


images\14-1.png


添加一个MySQL服务监控的脚本
vim /etc/keepalived/check_mysql.sh
#!  /bin/bash
#判断mysqld是否存活
netstat  -nlpt | grep -w '3306'  &>> /dev/null

#如果数据库不存活
if [ $? -ne 0 ]
then
   #停止keepalived服务使得通信中止,VIP则漂移到其他存活的Keepalived节点
   systemctl stop keepalived
fi
exit 0


images\14-2.png


给脚本赋予可执行的一个权限!
chmod +x /etc/keepalived/check_mysql.sh

启动多台服务器分别数据库服务
systemctl start mysqld

启动测试,多台服务器启动keepalived 服务
systemctl start keepalived

images\14-3.png


images\14-4.png


启动成功!

此时VIP192.168.52.220 正在该台服务器上
images\14-5.png


若该服务器(192.168.52.201) 停止MySQL 服务,或者说停止 keepalived服务

images\14-6.png


VIP 飘逸成功!
images\14-7.png