MySQL MHA高可用环境搭建全攻略

资源类型:80-0.net 2025-07-01 10:21

mysql mha 环境搭建简介:



MySQL MHA环境搭建指南 在当今的数据驱动时代,数据库的高可用性是企业系统稳定运行的关键

    MySQL作为开源数据库中的佼佼者,其高可用解决方案层出不穷,其中MySQL MHA(Master High Availability Manager and tools for MySQL)以其高效、可靠的故障转移机制,成为众多企业的首选

    本文将详细介绍如何搭建一个MySQL MHA环境,确保您的数据库系统在面对突发故障时能够迅速恢复,保障业务连续性

     一、环境准备与软件版本 在开始搭建之前,首先需要明确环境架构及软件版本

    本次搭建将基于以下环境: -操作系统:CentOS 7 -MySQL版本:5.7.28 -MHA版本:mha4mysql-manager 0.58 和 mha4mysql-node0.58 二、整体架构 MHA环境主要由MHA Manager(管理节点)和MHA Node(数据节点)组成

    MHA Manager可以单独部署在一台独立的机器上,负责监控和管理多个MySQL主从集群

    每个MySQL服务器上运行MHA Node,与MHA Manager协同工作,实现故障转移和恢复

     在本次搭建中,我们假设有以下服务器角色分配: -centos01:作为Master节点 -centos02、centos04:作为Slave节点 -centos03:作为MHA Manager节点 三、MySQL主从复制搭建 3.1 环境准备 从【MySQL官网】(https://cdn.mysql.com/archives/mysql-5.7/)下载MySQL5.7.28的安装包,或者使用国内镜像源下载

    确保所有服务器间的网络连接正常,并且防火墙规则允许MySQL服务(默认端口3306)的通信

     3.2 MySQL安装与配置 1.安装MySQL: 移除系统上可能存在的MariaDB依赖

     bash rpm -qa | grep mariadb rpm -e mariadb-libs --nodeps 安装MySQL所需的依赖库

     bash yum install -y libaio 解压并安装MySQL RPM包

     bash tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm 根据依赖提示,依次安装其他rpm包 初始化MySQL数据库并启动服务

     bash mysqld --initialize --user=mysql systemctl start mysqld systemctl enable mysqld 修改MySQL root密码

     bash mysql -uroot -p 使用初始化生成的临时密码登录 SET PASSWORD = PASSWORD(123456); 2.配置主节点(Master): - 编辑/etc/my.cnf文件,添加或修改以下配置

     ini 【mysqld】 server-id=1 log_bin=mysql-bin binlog_format=mixed sync-binlog=1 log-slave-updates=true relay-log=relay-log-bin relay-log-index=slave-relay-bin.index 重启MySQL服务

     bash systemctl restart mysqld 创建复制用户并授权

     sql GRANT REPLICATION SLAVE ON- . TO myslave@% IDENTIFIED BY 123456; FLUSH PRIVILEGES; 锁表并导出数据(可选,用于初始数据同步)

     sql FLUSH TABLES WITH READ LOCK; mysqldump -uroot -p --all-databases --master-data > master_dump.sql UNLOCK TABLES; 3.配置从节点(Slave): - 在每个从节点上安装MySQL,并配置`/etc/my.cnf`文件中的`server-id`,确保每个节点的`server-id`唯一

     导入主节点数据(如果执行了数据导出步骤)

     bash mysql -uroot -p < master_dump.sql 配置从节点连接到主节点

     sql CHANGE MASTER TO MASTER_HOST=主节点IP, MASTER_USER=myslave, MASTER_PASSWORD=123456, MASTER_LOG_FILE=mysql-bin.000001, 根据master_dump.sql中的日志文件名和位置调整 MASTER_LOG_POS=XXX; 根据master_dump.sql中的日志位置调整 START SLAVE; 检查从节点状态

     sql SHOW SLAVE STATUSG; 四、MHA高可用搭建 4.1 SSH互通配置 1.生成SSH密钥对:在所有服务器上执行以下命令,生成公钥和私钥

     bash ssh-keygen -t rsa -P 2.配置无密码登录:将每个服务器的公钥复制到其他所有服务器(包括MHA Manager和MySQL节点之间)

     bash ssh-copy-id root@其他服务器IP 3.验证SSH互通:通过`ssh root@服务器IP`命令,确保能够无密码登录所有服务器

     4.2 安装MHA 1.下载MHA安装包:从【GitHub】(https://github.com/yoshinorim/mha4mysql-node/releases/tag/v0.58)或【MariaDB官方下载页面】(https://downloads.mariadb.com/MHA/)下载mha4mysql-manager和mha4mysql-node的RPM包

     2.安装MHA Node:在所有MySQL服务器上安装mha4mysql-node

     bash yum install perl-DBD-MySQL -y rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm 3.安装MHA Manager:在MHA Manager服务器上安装mha4mysql-manager,并安装其依赖的Perl模块

     bash wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm -y yum install perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes -y rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm 4.3 配置MHA 1.创建MHA配置目录:在MHA Manager服务器上创建必要的目录和文件

     bash mkdir -p /var/log/mha/app1 touch /var/log/mha/manager.log 2.配置全局配置文件:编辑`/etc/masterha_default.cnf`,添加基本配置

     ini 【server default】 user=root password=123456 ssh_user=root repl_u

阅读全文
上一篇:MySQL错误1822解决方案速递

最新收录:

  • 揭秘:如何读取MySQL的FRM文件内容
  • MySQL错误1822解决方案速递
  • MySQL长整型日期存储技巧揭秘
  • Linux下MySQL添加数据库文件指南
  • MySQL视图与主键连接技巧解析
  • MySQL存储过程:高效实现字符串拼接技巧
  • 2440型号深度解析:精通MySQL应用
  • MySQL聚合索引优化设置指南
  • MySQL技巧:CONCAT与REPLACE结合应用
  • 选择表单存储:MySQL还是MongoDB?全面解析
  • MySQL主键自动增长设置指南
  • MySQL创建表,设置主键自增序列
  • 首页 | mysql mha 环境搭建:MySQL MHA高可用环境搭建全攻略