返回顶部
首页 > 资讯 > 数据库 >Mysql+Keepalived实现双主热备方式
  • 845
分享到

Mysql+Keepalived实现双主热备方式

2024-04-02 19:04:59 845人浏览 薄情痞子
摘要

目录一、Mysql安装、配置和安全启动二、 两台mysql配置双主三、安装Keepalived四、配置Keepalived我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的

我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短

Mysql双主复制,即互为Master-Slave(默认只使用一台MasterA负责数据写入,另一台MasterB备用),可以实现数据库服务器的热备,但是一台Master宕机后不能实现动态切换。

使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查、失败切换机制,从而实现MySQL数据库高可用方案。

一、Mysql安装、配置和安全启动

把mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上传到/usr/local/src/

1、mysql安装

cd /usr/local/src/
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mkdir -p /usr/local/mysql/
mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql/mysql-5.7.28

2、创建mysql用户组和用户

cd /usr/local
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql mysql

3、初始化数据

cd /usr/local/mysql/mysql-5.7.28
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.28/ --datadir=/data1/mysql/data --lc_messages_dir=/usr/local/mysql/mysql-5.7.28/share --lc_messages=en_US
bin/mysql_ssl_rsa_setup --datadir=/data1/mysql/data

4、修改配置

vi /etc/my.cnf
basedir=/usr/local/mysql/mysql-5.7.28
datadir=/data1/mysql/data

5、配置环境变量

#编辑环境变量 .bash_profile表示当前用户个人配置 只对当前用户生效
vi ~/.bash_profile
 
#将mysql的bin目录配置到环境变量中
PATH=$PATH:$HOME/bin:/usr/local/mysql/mysql-5.7.28/bin
export PATH
 
#使配置修改后立即生效
source ~/.bash_profile

6、修改密码、配置远程访问和安全启动

#启动前先设置免密登录
vi /etc/my.cnf
#添加如下配置并保存 跳过权限验证
skip-grant-tables=1
 
#安全启动
cd /usr/local/mysql/mysql-5.7.28/bin
./mysqld_safe --user=mysql &
 
#修改密码
#进入mysql
mysql
use mysql
update user set authentication_string=password("123456") where user="root";
#刷新权限表
flush privileges;
 
#配置远程访问
use mysql
#允许所有机器访问root用户 %代表所有机器
update user set host='%' where user='root';
#授权所有机器的root用户拥有所有数据库的所有权限 远程访问密码root %代表所有机器
grant all privileges on *.* to root@'%' identified by 'root';
#刷新权限表
flush privileges;
 
#退出mysql
exit
 
#安全关闭
./mysqladmin -uroot -p shutdown
 
#删除免密登录配置
vi /etc/my.cnf
#删除skip-grant-tables=1并保存
 
#安全启动
./mysqld_safe --user=mysql &

二、 两台Mysql配置双主

1、创建主从同步replication用户

2、授权

192.168.0.101

#授权IP192.168.0.102的从数据库replication用户拥有所有数据库的同步权限 远程访问密码replication
grant replication slave on *.* to 'replication'@'192.168.0.102' identified by 'replication';
#刷新权限表
flush privileges;

192.168.0.102

#授权IP192.168.0.101的从数据库replication用户拥有所有数据库的同步权限 远程访问密码replication
grant replication slave on *.* to 'replication'@'192.168.0.101' identified by 'replication';
#刷新权限表
flush privileges;

3、添加配置文件

[mysqld]
basedir=/usr/local/mysql/mysql-5.7.28
datadir=/data1/mysql/data
 
server-id = 101
 
skip-external-locking
 
log_bin = mysql-binlog
binlog_do_db = sample
binlog-ignore-db = mysql
binlog-ignore-db = perfORMance_schema
binlog-ignore-db = information_schema
 
binlog_group_commit_sync_delay = 100000 # 单位微妙
binlog_group_commit_sync_no_delay_count = 20 # 单位每组事物数量
 
#设置复制类型
slave-parallel-type=LOGICAL_CLOCK
#设置并行数量
slave-parallel-workers=4
 
#主主需要加的部分
replicate-do-db = sample
 
log-slave-updates=true
#sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
 
innodb_buffer_pool_size = 12G
innodb_buffer_pool_instances = 8
innodb_buffer_pool_chunk_size = 128M
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 120
 
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/log/slow.log
long_query_time = 5
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
secure_file_priv=/usr/local/mysqlcsvfiles/
 
expire_logs_days=7
max_binlog_size=1024M
 
!includedir /etc/my.cnf.d

4、添加之后

mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysqlcsvfiles

5、安全关闭

./mysqladmin -uroot -p shutdown

6、安全启动

./mysqld_safe --user=mysql &

7、进入mysql执行

#进入mysql执行
show master status\G;
 
#分别记录主的binlog位置,在101的角度上102为主,在102的角度上,101为主
File:mysql-bin.000001
Position: 154
 
#设置同步关系(两个主都要设置)
#其中master_log_file和master_log_pos要登录到对方机器执行show master status\G;去查看
stop slave;
(在192.168.0.101)
change master to master_host='192.168.0.102',master_user='replication',master_passWord='replication',master_log_file='mysql-bin.000001',master_log_pos=154;
(在192.168.0.102)
change master to master_host='192.168.0.101',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=154;
 
#分别启动slave
start slave;

三、安装Keepalived

1、安装编译依赖包

yum install -y GCc openssl-devel libnl libnl-devel libnfnetlink-devel

2、安装Keepalived

#解压keepalived压缩包放到/usr/local/并重命名为keepalived
cd /usr/local/src
tar -zxvf keepalived-2.0.7.tar.gz
mv keepalived-2.0.7 /usr/local/keepalived
 
#配置keepalived 得到一个Makefile的文件夹
#--prefix:keepalived安装目录
#--sysconf:keepalived的核心配置文件,必须要在/etc目录下面,改为其他位置会导致启动不了,不配置在该目录下的话,启动keepalived时日志文件里面会报错,显示找不到/etc这个文件夹
cd /usr/local/keepalived
./configure --prefix=/usr/local/keepalived/ --sysconf /etc
 
#编译和安装keepalived
make && make install
 
#创建keepalived软链接 /usr/sbin/如果存在keepalived就先删除
ln -s  /usr/local/keepalived/sbin/keepalived /usr/sbin/
 
#复制keepalived脚本文件到/etc/init.d/目录下
cd keepalived
cp /usr/local/keepalived/etc/init.d/keepalived /etc/init.d/
 
#设置Keepalived开机自启动
chkconfig --add keepalived
chkconfig keepalived on
 
#启动keepalived
service keepalived start

四、配置Keepalived

1、编辑keepalived配置文件

vi /etc/keepalived/keepalived.conf

2、主服务器添加对应配置文件

global_defs {
	router_id LVS_LEVEL1	#主服务器名称
}
 
vrrp_script check_run {
   script "/etc/keepalived/mysql_check.sh"
   interval 5				#5秒执行一次脚本
}
 
vrrp_instance VI_1 {
    state MASTER			#主服务器
    interface eth0			#承载VIP地址到物理接口
    virtual_router_id 51	#虚拟路由器ID号,每个热播组保持一致
    priority 100			#优先级,数值越大优先级越高
    advert_int 1			#检查间隔,默认为1s
    authentication {		#认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111		#密码字串
    }
    virtual_ipaddress {
        192.168.0.144		#VIP地址(内网地址)
    }
    track_script {
        check_run
    }
}

3、备份服务器添加对应配置文件

global_defs {
	router_id LVS_LEVEL2	#备份服务器名称
}
vrrp_script check_run {
	script "/etc/keepalived/mysql_check.sh"
	interval 5				#5秒执行一次脚本
}
vrrp_instance VI_1 {
    state BACKUP			#备份服务器
    interface eth0			#承载VIP地址到物理接口
    virtual_router_id 51	#虚拟路由器ID号,每个热播组保持一致
    priority 50				#优先级,数值越大优先级越高
    advert_int 1			#检查间隔,默认为1s
    authentication {		#认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111		#密码字串
    }
    virtual_ipaddress {
        192.168.0.144       #VIP地址(和主服务器设置一样)
    }
    track_script {
        check_run
    }
}

附mysql_check.sh

#!/bin/bash
/usr/bin/mysql -uroot -p'你自己的数据库密码' -e "show status" &>/dev/null 
if [ $? -ne 0 ] ;then
    systemctl stop keepalived
fi
chmod +x /etc/keepalived/mysql_check.sh

4、重启keepalived 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql+Keepalived实现双主热备方式

本文链接: https://lsjlt.com/news/116980.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql+Keepalived实现双主热备方式
    目录一、mysql安装、配置和安全启动二、 两台Mysql配置双主三、安装Keepalived四、配置Keepalived我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的...
    99+
    2024-04-02
  • mysql+keepalived 双主热备高可用
    理论介绍: 我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。MySQL双主复制,即互...
    99+
    2024-04-02
  • Ubuntu搭建Mysql+Keepalived高可用的实现(双主热备)
    Mysql5.5双机热备 实现方案 安装两台Mysql 安装Mysql5.5 sudo apt-get update apt-get install aptitud...
    99+
    2024-04-02
  • keepalived Mysql双主热备配置的示例分析
    这篇文章主要介绍keepalived Mysql双主热备配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 基于keepalived双主热备:...
    99+
    2024-04-02
  • keepalived配置虚拟ip(VRRP)实现双机热备以及自动切换主备
    需求 我有两个服务器,一台A是正常处理数据的,还有一台B是备用机器;A如果网络异常或者崩了,B开启采集技术 但是其他人访问的ip地址,如果从A变成B,地址改变了,会影响业务需求的;所以需要A与B共用一个Ip地址,A服务器崩了,B还在,不影...
    99+
    2023-10-06
    服务器
  • mysql双机热备实现方案【可测试】
    一、概念 1、热备份和备份的区别   热备份指的是:High Available(HA)即高可用,而备份指的是Backup,数据备份的一种。这是两种不同的概念,应对的产品也是两种功能上完全不同的产品。热备份...
    99+
    2024-04-02
  • mysql中怎么实现双机热备
    mysql中怎么实现双机热备?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明实现双机热备,原理其实就是做两台机器的相互主从,把主从对调,然后再做一次就可以...
    99+
    2023-06-15
  • docker-compose启动mysql双机热备互为主从的方法实现
    目录1. 环境说明2. 启动 mysql-013. 启动 mysql-024. 配置主从同步4.1 mysql-01(master) ==> mysql-02(slave)4.2 mysql-02(master) ...
    99+
    2022-07-14
    docker-composemysql双机热备 docker-composemysql主从
  • 关于使用Keepalived实现Nginx的自动重启及双主热备高可用问题
    目录1、概述2、使用Keepalived实现Nginx的自动重启2.1 借助Shell脚本,完成Nginx的重启2.2 为脚本赋予运行权限2.3 在Keepalived配置文件中增加...
    99+
    2024-04-02
  • mysql双主热备失效怎么解决
    MySQL双主热备失效可能是由于以下几个原因引起的: 网络问题:检查双主服务器之间的网络连接是否正常,包括网络延迟、丢包等情况。...
    99+
    2023-10-26
    mysql
  • docker compose启动mysql双机热备互为主从怎么实现
    本篇内容主要讲解“docker compose启动mysql双机热备互为主从怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker compose启动mysql双机热备互为主从怎么实...
    99+
    2023-07-02
  • mysql keepalived主备切换的方法是什么
    MySQL的主备切换可以通过keepalived来实现,以下是一种常见的方法: 在主备两台服务器上分别安装MySQL,并配置好主从...
    99+
    2024-04-09
    mysql keepalived
  • mysql 中怎么利用master-master实现双机热备份
    mysql 中怎么利用master-master实现双机热备份 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、环境描述。&...
    99+
    2024-04-02
  • mysql数据库中怎么实现双向同步热备
    本篇文章为大家展示了mysql数据库中怎么实现双向同步热备,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 环境: Master server: 10.224.1...
    99+
    2024-04-02
  • Oracle HA双机主备基于共享存储模式并利用keepalived管理实现高可用
    HA概述 HA(High Available)即由两台计算机组成并对外提供一组相同的服务,也叫做一主一备模式。正常情况下由主服务器提供服务,备服务器处于待机备用,备机可以随时接替主服务器的工作。也...
    99+
    2024-04-02
  • mysql双机热备配置的方法是什么
    在MySQL双机热备配置中,通常使用主从复制(Master-Slave Replication)来实现数据备份和故障恢复。以下是实现...
    99+
    2024-04-09
    mysql
  • 怎么在Mysql中实现双机热备和负载均衡
    本篇文章为大家展示了怎么在Mysql中实现双机热备和负载均衡,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面是具体的主从热备份的步骤:假设主服务器A(master...
    99+
    2024-04-02
  • MySQL 双向备份的实现方法
    MySQL 双向备份也被称为 主主备份 ,即两个 MySQL 服务都是 Master,其中任意一个服务又是另一个服务的 Slave。 准备 服务器 MySQL服务器 ...
    99+
    2024-04-02
  • docker实现MySQL主从双备的示例代码
    目录环境配置MySQL基础知识搭建主MySQL搭建从MySQL配置主从复制拓展环境配置 本地操作系统:Win10虚拟机的操作系统:CentOS Stream 8已安装docker,可...
    99+
    2024-04-02
  • mysql怎么实现热备份
    mysql热备份主要分为主从备份和主主备份两种,下面介绍mysql实现主从备份的方法主服务器配置[mysqld]#主从备份log-bin=mysql-binbinlog_format=mixedserver-id=1read-only=0b...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作