以下是一个简单的 MHA 部署方案示例,包括所需软件和配置清单:
一、环境准备
准备至少 3 台服务器:1 台主服务器(Master),2 台从服务器(Slave)。
操作系统:CentOS 7 或类似的 Linux 发行版
安装 MySQL 5.7 或更高版本
二、所需软件
perl :一般系统自带,若未安装可通过 yum install perl 安装。
mha4mysql-node :在所有服务器(主从服务器)上安装。
mha4mysql-manager :仅在管理节点服务器上安装。
三、配置清单
MySQL 主从复制配置
在主服务器(Master)的 my.cnf 中添加以下配置:
ini
复制
[mysqld]
log_bin = /var/lib/mysql/mysql-bin
server_id = 1
在从服务器(Slave)的 my.cnf 中添加以下配置:
ini
复制
[mysqld]
server_id = 2 # 另一台从服务器设置为 3 等不同的值
relay_log = /var/lib/mysql/relay-log
然后在从服务器上执行以下命令配置主从复制:
sql
复制
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=123; # 根据实际情况填写
START SLAVE;
MHA 配置
创建 MHA 配置文件 /etc/mha/app1.cnf (app1 可根据实际应用命名),内容如下:
ini
复制
[server default]
user=mhauser # MHA 管理用户
password=mhapassword # 对应的密码
manager_workdir=/var/log/mha/app1 # 工作目录
manager_log=/var/log/mha/app1/manager.log # 日志文件
[server1]
hostname=master_ip # 主服务器 IP
port=3306
[server2]
hostname=slave1_ip # 从服务器 1 IP
port=3306
[server3]
hostname=slave2_ip # 从服务器 2 IP
port=3306
测试和启动
在管理节点上进行测试:
bash
复制
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app1.cnf
如果测试通过,启动 MHA 管理器:
bash
复制
nohup masterha_manager --conf=/etc/mha/app1.cnf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
请注意,以上示例仅供参考,您需要根据实际的服务器环境和需求进行调整。在生产环境中部署前,务必进行充分的测试和备份。