linux系统mysql数据库使用keepalived做高可用

mysql使用keepalived做高可用

mysql+keepalived

先做两台服务器数据库互为主从

主库服务器配置
复制代码
开启binlog服务
mkdir -pv /data/      //创建存放binlog日志目录
chown mysql.mysql /data      //修改目录所有者和属组

vim /etc/my.cnf           //mysql配置文件
server-id=175             //设置serverid
log-bin=/data/mysql-bin   //设置logbin日志存放目录

systemctl restart mysqld     //修改mysql文件,需要重启服务

创建一个提供远程复制的用户

mysql> grant replication slave on *.* to 'replication'@'%' identified by '0';  //创建一个只有复制权限的用户
mysql> flush privileges;   //刷新数据表
mysql> reset master;                //重新记载binlog日志
mysql> show master status\G
mysql> CHANGE MASTER TO           //配置从库连接主库信息
  MASTER_HOST='10.12.153.172',
  MASTER_USER='replication',
  MASTER_PASSWORD='0',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=154,
  MASTER_CONNECT_RETRY=10;

mysql>start slave;
mysql> show slave status\G 
从库服务器配置
复制代码
开启binlog服务
mkdir -pv /data/      //创建存放binlog日志目录
chown mysql.mysql /data      //修改目录所有者和属组

vim /etc/my.cnf           //mysql配置文件
server-id=175             //设置serverid
log-bin=/data/mysql-bin   //设置logbin日志存放目录

systemctl restart mysqld     //修改mysql文件,需要重启服务

创建一个提供远程复制的用户

mysql> grant replication slave on *.* to 'replication'@'%' identified by '0';  //创建一个只有复制权限的用户
mysql> flush privileges;   //刷新数据表
mysql> reset master;                //重新记载binlog日志
mysql> show master status\G
mysql> CHANGE MASTER TO           //配置从库连接主库信息
  MASTER_HOST='10.12.153.172',
  MASTER_USER='replication',
  MASTER_PASSWORD='0',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=154,
  MASTER_CONNECT_RETRY=10;
  
mysql>start slave;
mysql> show slave status\G    
两台服务器安装
复制代码
yum -y install keepalived

master端设置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id master
}
vrrp_script check_run {
   script "/etc/keepalived/keepalived_chech_mysql.sh"
   interval 5
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 89
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.246.100/24    #vip地址
    }
    track_script {
        check_run
    }
}


backup端设置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id backup
}
vrrp_script check_run {
   script "/etc/keepalived/keepalived_check_mysql.sh"
   interval 5
}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface ens33
    virtual_router_id 89
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.246.100/24
    }
    track_script {
        check_run
    }
}



两台服务器都设置mysql检测脚本
vim /etc/keepalived/keepalived_check_mysql.sh
#!/bin/bash
/usr/bin/mysql -uroot -p'QianFeng@2019!' -e "show status" &>/dev/null 
if [ $? -ne 0 ] ;then 
#	service keepalived stop
	systemctl stop keepalived
fi

chmod +x /etc/keepalived/keepalived_check_mysql.sh

systemctl start keepalived   //启动keepalived
相关推荐
蓝速科技1 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
QYR-分析1 小时前
重轨受电弓行业深度报告:市场格局、技术迭代与发展前景
大数据·数据库·人工智能
泡泡鱼(敲代码中)2 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
H_oRIZoN_2 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
l1t2 小时前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle
冰暮流星3 小时前
mysql之表子查询
数据库·mysql
GeW3 小时前
RHCE备考别瞎学!按这个计划走,30天提高通过率,快速拿证
linux
Escalating_xu4 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
Full Stack Developme4 小时前
CRM相关库表设计
数据库
步行cgn4 小时前
Spring 注入 Map 集合详解
数据库·python·spring