MYSQL双主双从,使用Keepalived双机热备+LVS高可用群集

MYSQL双主双从,使用Keepalived双机热备+LVS高可用群集

​ 文档只记录Keepalived+LVS+mysql主从,不包含检验,如需检验,请自行添加web服务器

一、IP规划

服务器IP备注
master1192.168.100.131master2的从
master2192.168.100.132master1的从
slave1192.168.100.134master1的从
slave2192.168.100.135master2的从
KI1192.168.100.137
KI2192.168.100.138
虚拟ip192.168.100.200热备ip

二、具体配置

1.master1

​ 配置ip:192.168.100.131

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载mariadb

yum -y install mariadb mariadb-server

​ 编辑mariadb配置文件

vi /etc/my.cnf

​ 添加以下内容

# 标识(0-65535范围)
server-id=1# 日志文件名称前缀
log-bin=mysql-bin# 排除不复制的库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys# 配置中继日志名称
relay-log=mysql-relay-bin# 配置排除的库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys# 编码格
init-connect='SET NAMES UTF8'
skip-character-set-client-handshake
character-set-server=utf8# 开启联等备份
log_slave_updates=1

​ 修改完成重启服务

# 重启服务
systemctl restart mariadb# 配置mysql密码,123456
mysql_secure_installation 

​ 授权

# 进入mysql
mysql -uroot -p123456# 创建用户
create user "backup"@"%" identified by '123456';# 授权
grant replication slave on *.* to "backup"@"%" identified by "123456";
grant all privileges on *.* to 'root'@'%' identified by '123456';# 刷新权限
flush privileges;# 查询Log_file,log_pos
show master status;
+------------------+----------+--------------+-------------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                                |
+------------------+----------+--------------+-------------------------------------------------+
| mysql-bin.000003 |     1947 |              | mysql,information_schema,performance_schema,sys |
+------------------+----------+--------------+-------------------------------------------------+
1 row in set (0.00 sec)# 从库连接主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得
change master to 
MASTER_HOST='192.168.100.132', 
MASTER_USER='backup', 
MASTER_PASSWORD='123456', 
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000003', 
MASTER_LOG_POS=1947;# 开启复制
start slave;# 查看slave状态,Slave_IO_Running,Slave_SQL_Running的状态要为Yes
show slave status \G;

2.master2

​ 配置ip:192.168.100.132

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载mariadb

yum -y install mariadb mariadb-server

​ 编辑mariadb配置文件

vi /etc/my.cnf

​ 添加以下内容

# 标识(0-65535范围)
server-id=2# 日志文件名称前缀
log-bin=mysql-bin# 排除不复制的库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys# 配置中继日志名称
relay-log=mysql-relay-bin# 配置排除的库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys# 编码格
init-connect='SET NAMES UTF8'
skip-character-set-client-handshake
character-set-server=utf8# 开启联等备份
log_slave_updates=1

​ 修改完成重启服务

# 重启服务
systemctl restart mariadb# 配置mysql密码,123456
mysql_secure_installation 

​ 授权

# 进入mysql
mysql -uroot -p123456# 创建用户
create user "backup"@"%" identified by '123456';# 授权
grant replication slave on *.* to "backup"@"%" identified by "123456";
grant all privileges on *.* to 'root'@'%' identified by '123456';# 刷新权限
flush privileges;# 查询Log_file,log_pos
show master status;
+------------------+----------+--------------+-------------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                                |
+------------------+----------+--------------+-------------------------------------------------+
| mysql-bin.000003 |     1947 |              | mysql,information_schema,performance_schema,sys |
+------------------+----------+--------------+-------------------------------------------------+
1 row in set (0.00 sec)# 从库连接主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得
change master to 
MASTER_HOST='192.168.100.134', 
MASTER_USER='backup', 
MASTER_PASSWORD='123456', 
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000004', 
MASTER_LOG_POS=1947;# 开启复制
start slave;# 查看slave状态,Slave_IO_Running,Slave_SQL_Running的状态要为Yes
show slave status \G;

3.slave1

​ 配置ip:192.168.100.134

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载mariadb

yum -y install mariadb mariadb-server

​ 编辑mariadb配置文件

vi /etc/my.cnf

​ 添加以下内容

# 标识(0-65535范围)
server-id=3# 配置中继日志名称
relay-log=mysql-relay-bin# 配置排除的库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys# 编码格式
init-connect='SET NAMES UTF8'
skip-character-set-client-handshake
character-set-server=utf8

​ 修改完成重启服务

# 重启服务
systemctl restart mariadb# 配置mysql密码,123456
mysql_secure_installation 

​ 授权

# 连接数据库
mysql -uroot -p123456# 授权
grant all privileges on *.* to "root"@"%" identified by "123456"; # 刷新权限
flush privileges;# 从库连接主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得
change master to 
MASTER_HOST='192.168.100.131', 
MASTER_USER='backup', 
MASTER_PASSWORD='123456', 
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000003', 
MASTER_LOG_POS=1947;# 开启复制
start slave;# 查看slave状态,Slave_IO_Running,Slave_SQL_Running的状态要为Yes
show slave status \G;

4.slave2

​ 配置ip:192.168.100.135

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载mariadb

yum -y install mariadb mariadb-server

​ 编辑mariadb配置文件

vi /etc/my.cnf

​ 添加以下内容

# 标识(0-65535范围)
server-id=4# 配置中继日志名称
relay-log=mysql-relay-bin# 配置排除的库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys# 编码格
init-connect='SET NAMES UTF8'
skip-character-set-client-handshake
character-set-server=utf8

​ 修改完成重启服务

# 重启服务
systemctl restart mariadb# 配置mysql密码,123456
mysql_secure_installation 

​ 授权

# 连接数据库
mysql -uroot -p123456# 授权
grant all privileges on *.* to "root"@"%" identified by "123456"; # 刷新权限
flush privileges;# 从库连接主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得
change master to 
MASTER_HOST='192.168.100.132', 
MASTER_USER='backup', 
MASTER_PASSWORD='123456', 
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000003', 
MASTER_LOG_POS=1947;# 开启复制
start slave;# 查看slave状态,Slave_IO_Running,Slave_SQL_Running的状态要为Yes
show slave status \G;

5.KI1

​ 配置ip:192.168.100.137

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载keepalived和ipvsadm

yum -y install keepalived ipvsadm

​ 备份默认配置文件

cp -p /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

​ 删除原有文件,创建新内容

# 删除原有文件
rm -rf /etc/keepalived/keepalived.conf # 创建新文件
vi /etc/keepalived/keepalived.conf 

​ 添加以下内容

! Configuration File for keepalived# 配置双机热备(主)
lobal_defs {router_id 1
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 1priority 120advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.100.200}
}# 虚拟服务器ip及mysql地址
virtual_server 192.168.100.200 3306 {delay_loop 15lb_algo rrlb_kind DRprotocol TCPreal_server 192.168.100.131 3306 {weight 1TCP_CHECK {connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.100.132 3306 {weight 1TCP_CHECK {connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}

​ 启动keepalived

systemctl start keepalived

​ 服务模块

# 加载系统内核的服务模块
modprobe ip_vs# 查看运行状态
lsmod | grep ip_vs

​ 查看规则

ipvsadm -l

​ 下载net网络工具

yum -y install net-tools

​ 查看网卡信息

# 停用物理网卡
ifconfig ens33 down# 启动物理网卡(如在连接工具上,需到虚拟机上启动)
ifconfig ens33 up# 查看网卡信息(在ens33网卡下是否有ip:192.168.100.200)
ip a

​ 虚拟网卡

# 添加虚拟网卡(回环地址)
cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0  << EOF
DEVICE=lo:0
IPADDR=192.168.100.200
NETMASK=255.255.255.255
ONBOOT=yes
EOF# 重启网络
systemctl restart network# 查看是否有虚拟ip
ip a

​ 写入路由指向

# 添加路由信息
route add -host 192.168.100.200 dev lo:0

6.KI2

​ 配置ip:192.168.100.138

​ 关闭防护墙,selinux

# 关闭防火墙
systemctl stop firewalld# 关闭selinux
setenforce 0

​ 下载keepalived和ipvsadm

yum -y install keepalived ipvsadm

​ 备份默认配置文件

cp -p /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

​ 添加以下内容

! Configuration File for keepalived# 配置双机热备(备)
lobal_defs {router_id 2
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 1priority 100advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.100.200}
}# 虚拟服务器ip及mysql地址
virtual_server 192.168.100.200 3306 {delay_loop 15lb_algo rrlb_kind DRprotocol TCPreal_server 192.168.100.131 3306 {weight 1TCP_CHECK {connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.100.132 3306 {weight 1TCP_CHECK {connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}

​ 启动keepalived

systemctl start keepalived

​ 服务模块

# 加载系统内核的服务模块
modprobe ip_vs# 查看运行状态
lsmod | grep ip_vs

​ 查看规则

ipvsadm -l

​ 下载net网络工具

yum -y install net-tools

​ 查看网卡信息

# 停用物理网卡
ifconfig ens33 down# 启动物理网卡(如在连接工具上,需到虚拟机上启动)
ifconfig ens33 up# 查看网卡信息(在ens33网卡下是否有ip:192.168.100.200)
ip a

​ 虚拟网卡

# 添加虚拟网卡(回环地址)
cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0  << EOF
DEVICE=lo:0
IPADDR=192.168.100.200
NETMASK=255.255.255.255
ONBOOT=yes
EOF# 重启网络
systemctl restart network# 查看是否有虚拟ip
ip a

​ 写入路由指向

# 添加路由信息
route add -host 192.168.100.200 dev lo:0

三、检验

​ 可自行添加一台web服务器,连接虚拟ip,开启KI1或KI2的防火墙进行检测

或者,开启KI1的防火墙,查看ip是否跳转到KI2上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Matlab 路径优化】基于蚁群算法的XX市旅游景点线路优化系统

基于蚁群算法的XX市旅游景点线路优化系统 &#xff08;一&#xff09;客户需求&#xff1a; ①考虑旅游景点的空间分布、游客偏好等因素&#xff0c;实现了旅游线路的智能规划 ②游客选择一景点出发经过所要游览的所有景点只一次&#xff0c;最后回到出发点的前提下&#xf…

VS2019+QT VS tools:Debug下ok,relese下报错

报错界面 踩得坑&#xff1a; 尝试一下重装 QT VS tools&#xff0c;结果装不上。 尝试卸载原来的QT VS tools&#xff1a;卸载方法&#xff0c;到下面文件夹下可以看到有两个文件夹&#xff0c;分别是两个插件&#xff0c;找到QT的插件&#xff0c;删除文件夹即可。但是删除…

vscode 历史便携版下载方法

VScode安装版 https://update.code.visualstudio.com/版本号/win32-x64-archive/stable https://update.code.visualstudio.com/1.85.2/win32-x64-archive/stablevscode 便携版 vscode 历史版本地址 https://code.visualstudio.com/updates/v1_75#_remote-developmentexe 信…

Centos openssh CVE-2024-6378 漏洞升级

Openssh CVE-2024-6378 漏洞需要升级openssh版本,此次漏洞影响范围>=8.5P1,<9.8P1,当前官方最新版本就是9.8P1,所以必须升级到最新版本 升级方式 由于影响的设备范围很广,如果每台机器手工编译,很浪费时间,所以采取编译RPM包,然后使用RPM包升级的方式来升级 下载…

SQL索引事务

SQL索引事务 索引 创建主键约束(primary key),唯一约束(unique),外键约束(foreign key)时,会自动创建对应列的索引 1.1 查看索引 show index from 表名 现在这个表中没有索引,那么我们现在将这几个表删除之后创建新表 我们现在建立一个班级表一个学生表,并且学生表与班级表存…

HMI 的 UI 风格创新无限

HMI 的 UI 风格创新无限

pyvtk设置lod

LOD&#xff08;Level of Detail&#xff09;是计算机图形学中用于优化渲染性能和显示质量的一种技术。在PyVTK中&#xff0c;可以通过设置不同级别的多边形数据来实现LOD。 以下是一个简单的例子&#xff0c;展示如何在PyVTK中设置LOD&#xff1a; import vtk# 创建一个立方…

Laravel中间件:构建强大Web应用的基石

Laravel中间件&#xff1a;构建强大Web应用的基石 在Laravel框架中&#xff0c;中间件提供了一种强大的方法来过滤HTTP请求和响应。它们可以用于认证用户、授权用户执行特定操作、记录请求信息、处理异常等。本文将详细探讨如何在Laravel中使用中间件&#xff0c;包括创建中间…

什么地方适合安装自动气象站?

随着科技的不断进步&#xff0c;自动气象站在气象观测、环境监测以及科研教学等领域发挥着越来越重要的作用。 一、科研机构和高校校园 科研机构和高校校园是安装自动气象站的理想场所。这些地方拥有专业的科研团队和丰富的教育资源&#xff0c;可以为气象站的建设和运营提供有…

Unity 之基于URP使用UniStorm Weather System天气系统

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity 之基于URP使用UniStorm Weather System天气系统 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、…

守护企业信用 赢得持续发展 路劲境外美元债调整方案获通过

路劲境外美元债调整方案于7月3日经特别决议案大会批准获正式通过&#xff0c;集团存量5笔美元高级债获得同意展期3.5年&#xff0c;1笔美元永续债获得同意将利率重设日期延后3.5年。这一方案的通过&#xff0c;体现了投资人对路劲的经营能力和长远发展的信心&#xff0c;也标志…

掌握高效实用的VS调试技巧

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 1.编程常见的错误 1.1编译型错误 编程编译型错误是指在编译代码时发现的错误。编译器在编译过程中会检查代码是否符合语法规范和语义要求&#xff0c;如果发现错误会产生编译错误。 直接看错误提示信息&#xff08;双击&#…

用asp开发邮件群发功能

在ASP中群发邮件&#xff0c;可以使用CDO (Collaboration Data Objects) 或JMail组件。以下是好代码网使用CDO的一个简单示例&#xff1a; <%配置邮件服务器信息 Dim mail Set mail Server.CreateObject("CDO.Message") mail.Configuration.Fields.Item _("…

数据库安全审计系统:满足数据安全治理合规要求

伴随着数据库信息价值以及可访问性提升&#xff0c;使得数据库面对来自内部和外部的安全风险大大增加&#xff0c;如违规越权操作、恶意入侵导致机密信息窃取泄漏&#xff0c;但事后却无法有效追溯和审计。 国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数…

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

目录 一、什么是 Collabora Online?二、Docker 下载并启动 CODE2.1 拉取镜像2.2 启动镜像2.3 访问界面2.4 补充:nextcloud 的镜像启动三、SpringBoot 实现 WOPI 服务3.1 什么是WOPI?3.2 Spring Boot 简单实现3.3 另一种实现方式3.4 总结四、补充:coolwsd.xml 核心配置介绍c…

通感一体化技术在低空无人经济中的应用

通感一体化技术通过部署大规模天线阵列等方式&#xff0c;实现对低空区域的网络覆盖。利用基站的可组网特性&#xff0c;为低空作业提供稳定、连续、高速且可靠的无缝覆盖通信网络。同时&#xff0c;AAU&#xff08;有源天线&#xff09;具有感知信号自发自收、高效组网、多波束…

中英双语介绍美国的州:南达科他州(South Dakota)

中文版 南达科他州简介 南达科他州&#xff08;South Dakota&#xff09;位于美国中北部&#xff0c;以其壮丽的自然景观、丰富的文化历史和多样的经济结构而闻名。以下是对南达科他州的详细介绍&#xff0c;包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 …

线程创建的三种方式和线程池创建的四种方式

线程创建的三种方式和线程池创建的四种方式 1.1线程创建的方式 java创建线程的三种方式&#xff1a; 继承Thread类创建线程类实现Runnable接口通过Callable和Future创建线程 1.2创建线程 1.2.1继承Thread类 &#xff08;1&#xff09;创建Thread类的子类&#xff0c;并重写…

【PYG】节点特征合并和节点特征提取

在图神经网络&#xff08;Graph Neural Networks, GNN&#xff09;中&#xff0c;节点特征合并与节点特征提取是两个关键步骤。以下是对这两个步骤的简要解释和常用方法&#xff1a; 节点特征合并 节点特征合并是指在图神经网络中&#xff0c;将节点的自身特征与其邻居节点的…

LeetCode 1327, 383, 236

目录 1327. 列出指定时间段内所有的下单产品题目链接表要求知识点思路代码 383. 赎金信题目链接标签思路代码 236. 二叉树的最近公共祖先题目链接标签思路代码 1327. 列出指定时间段内所有的下单产品 题目链接 1327. 列出指定时间段内所有的下单产品 表 表Products的字段为…