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
相关推荐
mlidongfeng9 分钟前
[AI][昇腾950]TA 学习
数据库·学习
bestsun99917 分钟前
rac集群环境下配置JDBC
数据库
java_logo1 小时前
Docker 部署 FalkorDB:轻松搭建属性图数据库与知识图谱平台
数据库·docker·知识图谱·falkordb·轩辕镜像·falkordb部署教程·falkordb部署文档
yunwei371 小时前
eBPF 教程:用 BPF Qdisc 实现出口限速
linux·云原生·开源
mengge.cloud1 小时前
Linux三剑客 grep sed awk 小白基础教程
linux·运维·服务器·网络
小白说大模型1 小时前
Spring AI 框架中集成 MCP 的完整指南:从服务端到客户端的全流程实践
大数据·数据库·人工智能·安全·spring·chatgpt·开源
盐焗鹌鹑蛋1 小时前
【Linux】进程间通信与进程池
linux
计算机魔术师1 小时前
第二届世界人形机器人运动会开幕:2056 台机器人齐聚“冰丝带“,666 支队伍竞技 51 赛项
数据库·人工智能·机器人
@insist1231 小时前
系统集成项目管理工程师-配置管理角色与活动
数据库·软考·系统集成项目管理工程师·软考中项·软件水平考试
无毁的湖光-Al2 小时前
解Bug之路-with AI-应用被限流?
java·linux