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
相关推荐
hef2886 分钟前
怎么诊断MongoDB Config Server响应极慢的问题_高频Auto-split导致的元库写入压力
jvm·数据库·python
qq_3806191611 分钟前
html怎么用deno运行_Deno如何作为本地服务器运行HTML文件
jvm·数据库·python
ruan11451413 分钟前
Redis--个人学习记录
数据库·redis·学习
默|笙14 分钟前
【Linux】线程互斥与同步_同步(2)_环形队列
linux·运维·服务器
小红的布丁18 分钟前
BIO、NIO、AIO 与 IO 多路复用:select、poll、epoll 详解
java·数据库·nio
袋鼠云数栈18 分钟前
AI 时代,企业为何必须重新思考数据底座?
数据库·数据治理·数据中台·数栈·袋鼠云
Elastic 中国社区官方博客19 分钟前
在 Elastic 中使用 OpenTelemetry 内容包可视化 OpenTelemetry 数据
大数据·开发语言·数据库·elasticsearch·搜索引擎
Ahern_19 分钟前
PolarDB 8.4.19 单节点安装
mysql·centos
cui_ruicheng21 分钟前
Linux IO入门(一):从C语言IO到文件描述符
linux·运维·c语言
丸子家的银河龙22 分钟前
yocto使用实例[1]-自定义内核配方
linux