准备工作
在进行MHA搭建之前需要先保证mysql的主从同步的搭建,具体搭建过程参考之前的文章链接: 超简单的mysql主从同步搭建过程
所需安装包:
链接: https://pan.baidu.com/s/1-PhqASiLL1nSqMFqcnOrQA 提取码: cg4v
搭建环境
ip | 角色 |
---|---|
47.111.102.190 | MHA Manager |
121.40.189.18 | master |
121.40.142.119 | slave |
121.196.43.166 | slave |
SSH互通环境
MHA集群的各节点直接需要基于ssh互相通信,先将主从的服务器之间免密ssh互通
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@121.40.189.18
ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.111.102.190
ssh-copy-id -i ~/.ssh/id_rsa.pub root@121.40.142.119
ssh-copy-id -i ~/.ssh/id_rsa.pub root@121.196.43.166
MHA搭建
MHA安装之前需要先安装这两个查询依赖,不然可能会安装失败
yum install perl-ExtUtils-MakeMaker
yum install perl-Test-Simple
四个节点都需安装node
yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm
Manager 节点另需要安装manage
yum install -y mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
初始化MHA 添加配置
mkdir /etc/mha_master
vim /etc/mha_master/mha.cnf
[server default]
user=root //管理用户
password=root //管理密码
manager_workdir=/etc/mha_master/app1 //mha_master自己的工作路径
manager_log=/etc/mha_master/manager.log // mha_master自己的日志文件
remote_workdir=/mydata/mha_master/app1 //每个远程主机的工作目录在何处
ssh_user=root // 基于ssh的密钥认证
repl_user=root //数据库用户名
repl_password=root //数据库密码
ping_interval=1 //ping间隔时长
[server1] //节点
hostname=121.40.189.18 //节点主机地址
ssh_port=22 //节点的ssh端口
candidate_master=1 //将来可不可以成为master候选节点/主节点
[server2]
hostname=121.40.142.119
ssh_port=22
candidate_master=1
[server3]
hostname=121.196.43.166
ssh_port=22
candidate_master=1
对节点进行检测
masterha_check_ssh -conf=/etc/mha_master/mha.cnf
如果最后一行显示为[info]All SSH connection tests passed successfully.
则表示成功
检查管理的MySQL复制集群的连接配置参数是否OK
masterha_check_repl -conf=/etc/mha_master/mha.cnf
启动MHA
nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &
查看master节点状态
masterha_check_status -conf=/etc/mha_master/mha.cnf mha (pid:7598) is running(0:PING_OK), master:121.40.189.18
然后进行测试
停掉master节点
查看日志
tail -200 /etc/mha_master/manager.log
主节点自动切换
完成;