目录

一、MHA(一主多从模式)

1.环境准备(所有节点)

2. 部署 MySQL 主从复制(Master+Slave)

3.部署 MHA Manager(管理节点)

(1)安装 MHA Manager

(2)配置 SSH 无密码登录

(3)创建 MHA 配置文件

4.部署 MHA Node(所有 MySQL 节点)

5.验证和启动 MHA

二、PXC(多主模式)

1.环境准备

2.安装 PXC 相关软件(所有节点)

3.配置 PXC(所有节点)

(1)创建数据目录并设置权限

(2)修改配置文件

4.启动 PXC 集群

5.初始化配置和测试


一、MHA(一主多从模式)

1.环境准备(所有节点)

# 关闭防火墙和 SELinux
systemctl stop ufw
systemctl disable ufw
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0# 配置主机名和 hosts 文件
# 主库(master)
hostnamectl set-hostname mysql-master
echo "192.168.10.61 mysql-master" >> /etc/hosts
echo "192.168.10.62 mysql-slave1" >> /etc/hosts
echo "192.168.10.63 mha-manager" >> /etc/hosts# 从库1(slave1)和从库2(slave2)执行相同操作,修改hostnamectl为对应主机名# 安装依赖包
sudo apt-get install -y make gcc libc6-dev libssl-dev libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl libio-socket-ssl-perl

2. 部署 MySQL 主从复制(Master+Slave)

参照Mysql主从复制部署_mysql replication部署操作-CSDN博客

3.部署 MHA Manager(管理节点)

(1)安装 MHA Manager

wget https://mirrors.aliyun.com/ubuntu/pool/universe/m/mha4mysql-manager/mha4mysql-manager_0.58-1.1_all.deb
sudo dpkg -i mha4mysql-manager_*.deb
sudo apt-get install -f  # 解决依赖问题

(2)配置 SSH 无密码登录

参考ssh免密登录-CSDN博客

(3)创建 MHA 配置文件

mkdir -p /etc/mha/masterha/app1
vim /etc/mha/masterha/app1.cnf

配置内容:

[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
master_binlog_dir=/var/lib/mysql
user=mha_admin  # MHA管理用户
password=password  # MHA管理用户密码
ping_interval=1  # 检测间隔(秒)
repl_user=repl  # 复制用户
repl_password=password  # 复制用户密码
ssh_user=root  # SSH用户
secondary_check_script="masterha_secondary_check -s mysql-slave1 -s mysql-slave2"  # 双节点检测[server1]
hostname=mysql-master
port=3306[server2]
hostname=mysql-slave1
port=3306
candidate_master=1  # 候选主库
check_repl_delay=0  # 不检查复制延迟[server3]
hostname=mysql-slave2
port=3306
candidate_master=1
check_repl_delay=0

4.部署 MHA Node(所有 MySQL 节点)

# 1.安装 MHA Node
# 在所有MySQL节点(master、slave1、slave2)执行
wget https://mirrors.aliyun.com/ubuntu/pool/universe/m/mha4mysql-node/mha4mysql-node_0.58-1.1_all.deb
sudo dpkg -i mha4mysql-node_*.deb
sudo apt-get install -f  # 解决依赖问题# 2.创建 MHA 管理用户
# 在所有MySQL节点执行
CREATE USER 'mha_admin'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'mha_admin'@'%';
FLUSH PRIVILEGES;

5.验证和启动 MHA

# 检查 SSH 连通性
# 在mha-manager节点执行
masterha_check_ssh --conf=/etc/mha/masterha/app1.cnf# 检查复制状态
masterha_check_repl --conf=/etc/mha/masterha/app1.cnf# 启动 MHA Manager
nohup masterha_manager --conf=/etc/mha/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &# 查看 MHA 状态
masterha_check_status --conf=/etc/mha/masterha/app1.cnf

注意事项:
二进制日志保留:主库需保留足够的 binlog(expire-logs-days设置长一些),避免故障转移时从库需要旧 binlog。
VIP 管理:生产环境建议配合 Keepalived 或 LVS 实现 VIP 自动漂移。
监控告警:监控 MHA Manager 日志(/var/log/masterha/app1/manager.log)和 MySQL 复制状态。
参数优化:根据实际情况调整ping_interval(检测频率)和secondary_check_script(双节点检测)。 

二、PXC(多主模式)

1.环境准备

# 关闭防火墙和 SELinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0# 配置主机名和 hosts 文件
# 节点1
hostnamectl set-hostname pxc-node1
echo "192.168.4.1 pxc-node1" >> /etc/hosts
echo "192.168.4.2 pxc-node2" >> /etc/hosts
echo "192.168.4.3 pxc-node3" >> /etc/hosts# 节点2和节点3执行相同操作,修改hostnamectl为对应主机名

2.安装 PXC 相关软件(所有节点)

# 1.安装依赖包
yum install -y epel-release
yum install -y libev lsof perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-DBD-MySQL perl-DBI perl-Digest perl-Digest-MD5 perl-IO-Compress perl-Net-Daemon perl-PlRPC qpress socat openssl openssl-devel# 2.卸载 mariadb(如果已安装)
rpm -e mariadb-libs --nodeps# 3.安装 XtraBackup
yum -y install percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm# 4.创建 MySQL 用户和组
groupadd -r mysql
useradd -M -s /bin/false -r -g mysql mysql# 5.安装 Percona XtraDB Cluster
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install Percona-XtraDB-Cluster-57

3.配置 PXC(所有节点)

(1)创建数据目录并设置权限

mkdir -p /data/local/percona-xtradb-cluster/data
chown -R mysql:mysql /data/local/percona-xtradb-cluster/data
mkdir -p /data/local/percona-xtradb-cluster/run
chown -R mysql:mysql /data/local/percona-xtradb-cluster/run
mkdir -p /data/logs/mysql
chown -R mysql:mysql /data/logs/mysql
touch /data/logs/mysql/error.log

(2)修改配置文件

         默认的/etc/my.cnf文件可以删除或重新指定路径,写入以下内容(以节点 1 为例,节点 2 和节点 3 需修改server_id、wsrep_node_name、wsrep_node_address)

socket = /data/local/percona-xtradb-cluster/run/mysql.sock
datadir = /data/local/percona-xtradb-cluster/data
socket = /data/local/percona-xtradb-cluster/run/mysql.sock
pid-file = /data/local/percona-xtradb-cluster/run/mysql.pid
wsrep_cluster_address=gcomm://192.168.4.1,192.168.4.2,192.168.4.3
pxc_strict_mode=ENFORCING
wsrep_cluster_name=test-pxc
wsrep_node_name=pxc-node1
wsrep_node_address=192.168.4.1

4.启动 PXC 集群

# 引导第一个节点(以节点 1 为例)
systemctl start mysql@bootstrap.service# 启动其他节点(节点 2 和节点 3)
systemctl start mysql
systemctl disable mysql

5.初始化配置和测试

获取初始密码并修改:
        在任意节点上通过grep password /data/logs/mysql/error.log获取临时密码,然后登录 MySQL 修改密码。
创建 SST 传输账号:
        登录 MySQL 后执行以下命令创建 SST 传输所需的账号

grant all privileges on *.* to'sst'@'localhost' identified by 'password';

 查看集群状态:
        在任意节点上登录 MySQL,执行show status like 'wsrep%';命令,查看集群状态相关信息,确保wsrep_cluster_size显示正确的节点数,wsrep_local_state值为 4(表示正常),wsrep_ready为ON。
测试集群:
        可以在一个节点上创建数据库、表并插入数据,然后在其他节点上查看是否能同步数据,或者停止某个节点的 MySQL 服务,观察其他节点的集群状态和数据是否正常,再重新启动该节点,查看数据是否能恢复同步。

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

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

相关文章

从 XSS 到 Bot 攻击:常见网络攻击防不胜防?雷池 WAF 用全场景防护为网站筑牢安全墙

1. 网络攻击类型当前常见的网络攻击类型包括&#xff1a;重放攻击&#xff08;HTTP Request Replay Attack&#xff09;&#xff1a;攻击者截获合法用户的 HTTP 请求并重新发送&#xff0c;以欺骗服务器执行相同操作。危害包括消耗服务器资源、大量抓取数据或绕过认证操作敏感接…

【王树森推荐系统】推荐系统涨指标的方法05:特殊用户人群

为什么要特殊对待特殊人群&#xff1f; 新用户&#xff0c;低活用户的行为很少&#xff0c;个性化推荐不准确。个性化的召回和排序都需要基于用户的历史行为&#xff0c;如果历史行为少&#xff0c;个性化就做不好&#xff0c;尤其是新用户&#xff0c;这就需要策略把个性化做的…

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用&#xff08;361&#xff09;引言&#xff1a;正文&#xff1a;一、Java 构建的智能家居能源数据架构1.1 多源能耗数据实时采集1.2 家庭能源画像与异常检测二、Java 驱动的节能策略与智能控制2.1 多场景节能…

从零开始的云计算生活——番外5,使用ELK实现对应用日志的监控

目录 一.环境准备 试验机安装 修改文件配置 二.收集测试机&#xff08;test&#xff09;日志 配置pipline文件 配置filebeat配置文件 三.收集测试机nginx日志 下载安装nginx 修改filebeat文件 修改pipline文件 四.收集网络服务模块日志 1.DHCP 下载dhcp 修改配置…

Node.js:函数、路由、全局对象

Node.js函数 在JavaScript中&#xff0c;一个函数可以作为另一个函数的参数&#xff0c;可以先定义一个函数&#xff0c;然后进行传递&#xff0c;也可以在传参的地方直接定义 function sayhello(){console.log("hello"); } function run(hello, value){hello();cons…

2025暑期—06神经网络-常见网络3

VGG16网络64个卷积核做两次卷积&#xff0c;填充后编程224X224X64 pooling 两次卷 pooling 三次卷...分辨率降低一半&#xff0c;通道数增加1倍所有卷积核都是3x3, 所有的pooling 都是2x2残差网络每一层的块都有越层的连接。

使用 FastAPI 构建 Elasticsearch API

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何使用 Pydantic 模式和 FastAPI 后台任务&#xff0c;通过实际示例构建一个 Elasticsearch API。 想获得 Elastic 认证吗&#xff1f;查看下一期 Elasticsearch Engineer 培训的时间&#xff01; Elasticsearch 拥有丰富…

[2025CVPR-目标检测方向]FSHNet:一种用于3D物体检测的全稀疏混合网络。

1. ​简介​ 论文提出了FSHNet&#xff08;Fully Sparse Hybrid Network&#xff09;&#xff0c;一种用于3D物体检测的全稀疏混合网络。FSHNet旨在解决现有稀疏3D检测器的两大核心问题&#xff1a;长距离交互能力弱和网络优化困难。稀疏检测器&#xff08;如VoxelNeXt和SAFDN…

MySql 8.0.42 zip版安装教程和使用

今天要装个MySQL&#xff0c;就按照自己以前的教程来做&#xff0c;不知道是不是版本更新了的原因&#xff0c;又遇到了一点小阻碍&#xff0c;于是再记录一下吧。 下载MySQL 下载链接&#xff1a;MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/…

【lucene】实现knn

在 Lucene 中&#xff0c;可以通过 KnnFloatVectorQuery 和 KnnFloatVectorField 来实现 KNN&#xff08;k-Nearest Neighbors&#xff09;搜索。以下是具体介绍&#xff1a;1. 功能原理KnnFloatVectorQuery 是 Lucene 用于执行最近邻搜索的查询类&#xff0c;它可以在一个字段…

RabbitMQ实践学习笔记

RabbitMQ实践 以下是关于RabbitMQ实践的整理,涵盖常见场景和示例代码(基于Markdown格式)。内容按模块分类,避免步骤词汇,直接提供可操作的方法: 基础连接与队列声明 使用Python的pika库建立连接并声明队列: import pikaconnection = pika.BlockingConnection(pika.C…

量子生成对抗网络:量子计算与生成模型的融合革命

引言&#xff1a;当生成对抗网络遇上量子计算在人工智能与量子计算双重浪潮的交汇处&#xff0c;量子生成对抗网络&#xff08;Quantum Generative Adversarial Networks, QGAN&#xff09;正成为突破经典算力瓶颈的关键技术。传统生成对抗网络&#xff08;GAN&#xff09;在图…

VBA 多个选项,将选中的选项录入当前选中的单元格

1、使用LISTBOX插件&#xff0c;选中后回车录入 维护好数据&#xff0c;并新增一个activeX列表框插件 Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count > 1 Then Exit SubIf Target.Row > 2 And Target.Row < 10 And Target.Column 2…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-微博点赞量Top6实现

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解主页-微博点赞量Top6实现 视频在线地址&…

SAP调用外部API

SAP需求将中文字符转化为对应的拼音具体思路,由于sap中没有将中文字符转化为拼音的函数或方法类,则以http请求访问外部服务器发布的API服务,然后获取其返回值即可1.调用外部网站上提供的api缺点:免费次数有限,后需要充值这里是用www格式的json报文*&----------------------…

(12)机器学习小白入门YOLOv:YOLOv8-cls 模型微调实操

YOLOv8-cls 模型微调实操 (1)机器学习小白入门YOLOv &#xff1a;从概念到实践 (2)机器学习小白入门 YOLOv&#xff1a;从模块优化到工程部署 (3)机器学习小白入门 YOLOv&#xff1a; 解锁图片分类新技能 (4)机器学习小白入门YOLOv &#xff1a;图片标注实操手册 (5)机器学习小…

基于Matlab传统图像处理技术的车辆车型识别与分类方法研究

随着计算机视觉和图像处理技术的发展&#xff0c;车辆检测与识别已经成为智能交通系统中的一个重要研究方向。传统图像处理方法通过对图像进行预处理、特征提取、分类与识别&#xff0c;提供了一种无需复杂深度学习模型的解决方案。本研究基于MATLAB平台&#xff0c;采用传统图…

未来趋势:LeafletJS 与 Web3/AI 的融合

引言 LeafletJS 作为一个轻量、灵活的 JavaScript 地图库&#xff0c;以其模块化设计和高效渲染能力在 Web 地图开发中占据重要地位。随着 Web3 和人工智能&#xff08;AI&#xff09;的兴起&#xff0c;地图应用的开发范式正在发生变革。Web3 技术&#xff08;如区块链、去中…

Spring AI 系列之二十一 - EmbeddingModel

之前做个几个大模型的应用&#xff0c;都是使用Python语言&#xff0c;后来有一个项目使用了Java&#xff0c;并使用了Spring AI框架。随着Spring AI不断地完善&#xff0c;最近它发布了1.0正式版&#xff0c;意味着它已经能很好的作为企业级生产环境的使用。对于Java开发者来说…

LFU算法及优化

继上一篇的LRU算法的实现和讲解&#xff0c;这一篇来讲述LFU最近使用频率高的数据很大概率将会再次被使用,而最近使用频率低的数据,将来大概率不会再使用。做法&#xff1a;把使用频率最小的数据置换出去。这种算法更多是从使用频率的角度&#xff08;但是当缓存满时&#xff0…