千家信息网

MySQL5.7中如何安装及配置MHA架构

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,下文给大家带来有关MySQL5.7中如何安装及配置MHA架构内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL5.7中如何安装及配置MHA架构你一定
千家信息网最后更新 2026年11月01日MySQL5.7中如何安装及配置MHA架构

下文给大家带来有关MySQL5.7中如何安装及配置MHA架构内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL5.7中如何安装及配置MHA架构你一定会有所收获。

前期准备

云服务器版本:CentOS Linux release 7.6.1810 (Core)

mysql_mha_manager : 192.168.10.215

mysql_mha_01 : 192.168.10.216

mysql_mha_02 : 192.168.10.217

mysql_mha_03 : 192.168.10.218

一. 安装MHA工具

1. mysql_mha_manager云服务器

安装依赖

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

yum install perl-DBD-MySQL -y

yum install perl-Config-Tiny -y

yum install perl-Log-Dispatch perl-Parallel-ForkManager -y

yum install perl-Parallel-ForkManager -y

安装node

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

安装manager

rpm -ivh mha4mysql-manager-0.57-0.el7.noarch.rpm

2. mysql_mha_01云服务器

安装依赖

yum install perl-DBD-MySQL -y

安装node

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

3. mysql_mha_02云服务器

安装依赖

yum install perl-DBD-MySQL -y

安装node

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

4. mysql_mha_03云服务器

安装依赖

yum install perl-DBD-MySQL -y

安装node

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

二. ssh免密

1. mysql_mha_manager

192.168.10.215

ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.216

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.217

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.218

2. mysql_mha_01

192.168.10.216

ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.217

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.218

3. mysql_mha_02

192.168.10.217

ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.216

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.218

4. mysql_mha_03

192.168.10.218

ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.216

ssh-copy-id -i /root/.ssh/id_rsa root@192.168.10.217

三. 安装mysql

所有机器创建帐号

groupadd mysql

useradd -g mysql mysql

初次启动报错

[root@mysql_mha_01 tmp]# service mysqld start

Starting MySQL.2019-03-12T14:27:25.072241Z mysqld_safe error: log-error set to '/data/mysql/logs/mysql.log', however file don't exists. Create writable for user 'mysql'.

ERROR! The server quit without updating PID file (/data/mysql/run/mysql.pid).

解决方案:

初次启动mysql:sudo -u mysql service mysqld start

再次启动mysql:service mysqld start|stop|restart

四. 修改hosts文件

mysql_mha_01/02/03、mysql_mha_manager

vi /etc/hosts

192.168.10.216 mysql_mha_01

192.168.10.217 mysql_mha_02

192.168.10.218 mysql_mha_03

五. mysql主从配置

mysql_mha_01/02/03关闭防火墙

systemctl stop firewalld.service

1. mysql_mha_01

grant replication slave,replication client ON *.* to 'repl'@'192.168.10.%' identified by 'repl';

flush privileges;

mysqldump --master-data=2 --single-transaction -uroot -p --all-databases > mysql_mha_01.sql


more mysql_mha_01.sql

CHANGE MASTER TO MASTER_LOG_FILE='mysql_mha01-bin.000003', MASTER_LOG_POS=1448;

scp mysql_mha_01.sql root@192.168.10.217:/tmp

scp mysql_mha_01.sql root@192.168.10.218:/tmp

2. mysql_mha_02

mysql -uroot -p < mysql_mha_01.sql

mysql -uroot -p

CHANGE MASTER TO MASTER_HOST='192.168.10.216',

MASTER_USER='repl', MASTER_PASSWORD='repl',

MASTER_LOG_FILE='mysql_mha01-bin.000003', MASTER_LOG_POS=1448;

start slave;

show slave status\G

3. mysql_mha_03

mysql -uroot -p < mysql_mha_01.sql

mysql -uroot -p

CHANGE MASTER TO MASTER_HOST='192.168.10.216',

MASTER_USER='repl', MASTER_PASSWORD='repl',

MASTER_LOG_FILE='mysql_mha01-bin.000003', MASTER_LOG_POS=1448;

start slave;

show slave status\G

六. mha的manager配置文件

1. mysql_mha_manager云服务器

mkdir -p /etc/mha

vi /etc/mha/mha.cnf

[server default]

manager_workdir=/etc/mha/

manager_log=/etc/mha/manager.log

master_binlog_dir=/data/mysql/binlog/

user=root

password=123456

ping_interval=1

remote_workdir=/tmp

repl_password=repl

repl_user=repl

secondary_check_script= /usr/bin/masterha_secondary_check -s 192.168.10.217 -s 192.168.10.218 --user=root --master_host=192.168.10.216 --master_ip=192.168.10.216 --master_port=3306

master_ip_failover_script="/etc/mha/scripts/master_ip_failover"

#master_ip_online_change_script="/etc/mha/scripts/master_ip_online_change"

#shutdown_script=""

ssh_user=root

[server1]

hostname=192.168.10.216

port=3306

candidate_master=1

check_repl_delay=0

[server2]

hostname=192.168.10.217

port=3306

candidate_master=1

check_repl_delay=0

[server3]

hostname=192.168.10.218

port=3306

七. 检查SSH免密、复制状态

1. 检查SSH免密

masterha_check_ssh --conf=/etc/mha/mha.cnf

2. 检查复制

masterha_check_repl --conf=/etc/mha/mha.cnf

错误1

描述

Tue Mar 12 12:50:46 2019 - [info] Connecting to root@192.168.10.217(mysql_mha_02:22)..

Can't exec "mysqlbinlog": No such file or directory at /usr/share/perl5/vendor_perl/MHA/BinlogManager.pm line 106.

mysqlbinlog version command failed with rc 1:0, please verify PATH, LD_LIBRARY_PATH, and client options at /usr/bin/apply_diff_relay_logs line 493.

解决方案

mysql_mha_01/02/03

ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog

错误2

描述

Tue Mar 12 13:13:13 2019 - [info] Connecting to root@192.168.10.217(mysql_mha_02:22)..

mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'

mysqlbinlog version command failed with rc 7:0, please verify PATH, LD_LIBRARY_PATH, and client options at /usr/bin/apply_diff_relay_logs line 493.

解决方案

mysql_mha_01/02/03

修改my.cnf

[client]

#default-character-set = utf8mb4

错误3

描述

Testing mysql connection and privileges..sh: mysql: command not found

mysql command failed with rc 127:0!

at /usr/bin/apply_diff_relay_logs line 375.

main::check() called at /usr/bin/apply_diff_relay_logs line 497

eval {...} called at /usr/bin/apply_diff_relay_logs line 475

main::main() called at /usr/bin/apply_diff_relay_logs line 120

Tue Mar 12 13:25:40 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln208] Slaves settings check failed!

Tue Mar 12 13:25:40 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln416] Slave configuration failed.

Tue Mar 12 13:25:40 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /usr/bin/masterha_check_repl line 48.

Tue Mar 12 13:25:40 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.

Tue Mar 12 13:25:40 2019 - [info] Got exit code 1 (Not master dead).

解决方案

mysql_mha_01/02/03

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

八. MHA启动与停止

1. 启动manager

nohup masterha_manager --conf=/etc/mha/mha.cnf< /dev/null > /etc/mha/manager.log 2>&1 &

2. 停止manager

masterha_stop --conf=/etc/mha/mha.cnf

3. 检查manager

masterha_check_status --conf=/etc/mha/mha.cnf

九. 测试

1. 查看状态

[root@mysql_mha_manager mha]# masterha_check_status --conf=/etc/mha/mha.cnf

mha (pid:27991) is running(0:PING_OK), master:mysql_mha_01

2. 关闭mysql_mha_01数据库

service mysqld stop

3. 查看日志和mha状态

日志

----- Failover Report -----

mha: MySQL Master failover mysql_mha_01(192.168.10.216:3306) to mysql_mha_02(192.168.10.217:3306) succeeded

Master mysql_mha_01(192.168.10.216:3306) is down!

Check MHA Manager logs at mysql_mha_manager:/etc/mha/manager.log for details.

Started automated(non-interactive) failover.

The latest slave mysql_mha_02(192.168.10.217:3306) has all relay logs for recovery.

Selected mysql_mha_02(192.168.10.217:3306) as a new master.

mysql_mha_02(192.168.10.217:3306): OK: Applying all logs succeeded.

mysql_mha_03(192.168.10.218:3306): This host has the latest relay log events.

Generating relay diff files from the latest slave succeeded.

mysql_mha_03(192.168.10.218:3306): OK: Applying all logs succeeded. Slave started, replicating from mysql_mha_02(192.168.10.217:3306)

mysql_mha_02(192.168.10.217:3306): Resetting slave info succeeded.

Master failover to mysql_mha_02(192.168.10.217:3306) completed successfully.

状态

[root@mysql_mha_manager mha]# masterha_check_status --conf=/etc/mha/mha.cnf

mha is stopped(2:NOT_RUNNING).

4. 查看 slave 状态

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.10.217

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql_mha02-bin.000003

Read_Master_Log_Pos: 154

Relay_Log_File: mysql_mha_03-relay-bin.000002

Relay_Log_Pos: 326

Relay_Master_Log_File: mysql_mha02-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

对于上文关于MySQL5.7中如何安装及配置MHA架构,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

服务器 服务 配置 状态 方案 解决方案 检查 架构 错误 文件 日志 不同 上文 下文 主从 内容 再次 前期 工具 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 耶加雪菲 广州大一互联网络科技有限公司 河南云网互联网络科技有限公司 科技创新与互联网经济 科技互联网创业计划书 互联网科技股有哪些 荆州市昕露互联网络科技有限公司 苏州五指互联网络科技有限 青岛科技大学互联网大赛研究生 互联网科技产业特征 上海科技产业互联网平台 沐思想互联网科技有限公司 互联网第三次科技革命特征 上海创道互联网络科技有限公司 广州有谷有贝互联网科技有限公司 10位科技互联网大佬 高科技和互联网的现代国家 科技发展第三阶段互联网时代 株洲百竞科技的互联网营销顾问 河南云网互联网络科技有限公司 科技类互联网 苏州大垚互联网科技 剑昆互联网络科技有限公司临桂 移动互联网科技股 陕西云淼互联网科技公司 银川新华互联网科技学校是国营吗 银川新华互联网科技学校原画 众联互联网络科技 长沙易易互联网科技有限公司
0