MYSQL MHA搭建-实测

本文详细介绍了在redhat6.9环境下,如何搭建MySQL 5.7.25版本的MHA(MySQL High Availability)集群,并进行failover和switchover测试。内容包括安装node和manager、配置SSH互信、创建MHA目录结构和配置文件、设置管理用户、检查和启动MHA Manager,以及执行故障切换和主库在线切换的步骤。
摘要由CSDN通过智能技术生成

环境:

mysql 5.7.25+MHA(0.58)+redhat6.9

下载及文档

http://code.google.com/p/mysql-master-ha/
分别下载:
mha4mysql-node-0.58
mha4mysql-manger-0.58
版本要选下,主页的版本,编译的时候失败

安装

1.安装node

[root@DEV-ZZZZ] mha4mysql-node-0.58]# perl Makefile.PL
*** Module::AutoInstall version 1.06
*** Checking for Perl dependencies…
[Core Features]

  • DBI …loaded. (1.609)
  • DBD::mysql …loaded. (4.013)
    *** Module::AutoInstall configuration finished.
    Checking if your kit is complete…
    Looks good
    Writing Makefile for mha4mysql::node

make && make install

2.安装manger

perl Makefile.PL
make && make install

3.配置互信

由于MHA manager通过SSH访问所有的node节点,各个node节点也同样通过SSH来相互发送不同的relay log 文件,所以要在每一个node和manager上配置SSH无密码登陆。
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.26
ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.27
ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.28
ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.29
(如果mange和备库再同一个节点,本身给自己也要做)

4.创建mha目录结构

主路径:/usr/local/masterha
cd masterha
mkdir config
mkdir data
mkdir log
mkdir scripts

他可以管理多个mha ,所以最好就是分不同的集群(建议而已,目录结构习惯)

下级目录为dev1 对应的集群名称,里面包含
config —配置文件
data —管理数据
log —日志
scripts —脚本

5.创建配置文件
[server default]
# mysql user and password
user=rep_mha   #MHA管理账户
password=rep_mha
ssh_user=root
repl_user=repl
repl_password=xxx@xxxxx
ssh_user=root
ping_interval=2  #ping间隔时间,用来检查master是否正常
# working directory on the manager
manager_workdir=/usr/local/masterha/dev1/data  #MHA工作目录
# working directory on MySQL servers
remote_workdir=/usr/local/masterha/dev1/data   #MHA工作目录
master_ip_failover_script=/usr/local/masterha/dev1/scripts/master_ip_failover
master_ip_online_change_script=/usr/local/masterha/dev1/scripts/master_ip_online_change
[server1]
hostname=xxx.xxx.xxx.27
master_binlog_dir=/usr/local/mysql/data
#指定MASTER节点binlog存放目录
candidate_master=1
#master宕机后,优先启用这台作为master
[server2]
hostname=xxx.xxx.xxx.28
master_binlog_dir=/usr/local/mysql/data
#指定MASTER节点binlog存放目录
candidate_master=1
#master宕机后,优先启用这台作为master
[server3]
hostname=xxx.xxx.xxx.29
master_binlog_dir=/usr/local/mysql/data
#指定MASTER节点binlog存放目录
no_master=1
#设置na_master=1,使服务器不能成为master
6.创建管理用户

grant all privileges on . to ‘rep_mha’@‘xxx.xxx.xxx.26’ identified by ‘xxx@xxxxx’;
grant all privileges on . to ‘xxx@xxxxx’@‘xxx.xxx.xxx.27’ identified by ‘xxx@xxxxx’;
grant all privileges on . to ‘xxx@xxxxx’@‘xxx.xxx.xxx.28’ identified by ‘xxx@xxxxx’;
grant all privileges on . to ‘xxx@xxxxx’@‘xxx.xxx.xxx.29’ identified by ‘xxx@xxxxx’;
flush privileges;

创建repl用户,在主和备主都需要互相

7.检查

检查ssh互信
masterha_check_ssh --conf=/usr/local/masterha/config/mha.cnf

Tue May 21 17:19:23 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Tue May 21 17:19:23 2019 - [info] Reading application default configuration from /usr/local/masterha/config/mha.cnf..
Tue May 21 17:19:23 2019 - [info] Reading server configuration from /usr/local/masterha/config/mha.cnf..
Tue May 21 17:19:23 2019 - [info] Starting SSH connection tests..
Tue May 21 17:19:24 2019 - [debug] 
Tue May 21 17:19:23 2019 - [debug]  Connecting via SSH from root@xxx.xxx.xxx.27(xxx.xxx.xxx.27:22) to root@xxx.xxx.xxx.28(xxx.xxx.xxx.28:22)..
Tue May 21 17:19:23 2019 - [debug]   ok.
Tue May 21 17:19:23 2019 - [debug]  Connecting via SSH from root@xxx.xxx.xxx.27(xxx.xxx.xxx.27:22) to root@xxx.xxx.xxx.29(xxx.xxx.xxx.29:22)..
Tue May 21 17:19:24 2019 - [debug]   ok.
Tue May 21 17:19:24 2019 - [debug] 
Tue May 21 17:19:24 2019 - [debug]  Connecting via SSH from root@xxx.xxx.xxx.28(xxx.xxx.xxx.28:22) to root@xxx.xxx.xxx.27(xxx.xxx.xxx.27:22)..
Tue May 21 17:19:24 2019 - [debug]   ok.
Tue May 21 17:19:24 2019 - [debug]  Connecting via SSH from root@xxx.xxx.xxx.28(xxx.xxx.xxx.28:22) to root@xxx.xxx.xxx.29(xxx.xxx.xxx.29:22)..
Tue May 21 17:19:24 2019 - [debug]   ok.
Tue May 21 17:19:25 2019 - [debug] 
Tue May 21 17:19:24 2019 - [debug]  Connecting via SSH from root@xxx.xxx.xxx.29(xxx.xxx.xxx.29:22) to root@xxx.xxx.xxx.27(xxx.xxx.xxx.27:22)..
Tue May 21 17:19:24 2019 - [debug]   ok.
Tue May 21 17:19:25 2019 - [debug]  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值