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
相关推荐
ZzzK,11 分钟前
JAVA虚拟机(JVM)
java·linux·jvm
island131432 分钟前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王38 分钟前
Redis的过期策略
数据库·redis·缓存
倔强的石头_38 分钟前
CentOS 上安装KingbaseES(ISO包)详细教程
数据库
Aspiresky1 小时前
浅析Linux进程信号处理机制:基本原理及应用
linux·运维·信号处理
2401_897930061 小时前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
诗句藏于尽头2 小时前
Django模型与数据库表映射的两种方式
数据库·python·django
ajassi20002 小时前
linux C 语言开发 (八) 进程基础
linux·运维·服务器
寻星探路2 小时前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
..过云雨2 小时前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习