一、完成安装mysql
linux 下载 安装 mysql 8.0+ (tar.xz)_ycsdn10的博客-CSDN博客
二、完成主从复制
(1)默认异步主从
mysql 8.0 + 主从复制配置_ycsdn10的博客-CSDN博客
(2)半同步复制主从
mysql 8.0 + 半同步复制_ycsdn10的博客-CSDN博客
三、机器准备
准备至少3台机器,最好4台。我这边3台进行测试,其中manager有mysql
四、ssh 互通准备
linux ssh 多机 互相 通信_ycsdn10的博客-CSDN博客
五、软件准备
下载
https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads
上传
linux直接用wget下载有问题,手动下载并上传
mha4mysql-node-0.56-0.el6.noarch.rpm
mha4mysql-manager-0.56-0.el6.noarch.rpm
另外几台同样可以手动上传,或者通过第一台传输过去
scp /mysql/mha4mysql-node-0.56-0.el6.noarch.rpm root@XXX:/mysql/
六、安装
mha运行时需要用到/usr/bin下的两个mysql命令,所以进行软连接(因为我用的是tar包,所以需要指定)
ln -s /mysql/mysql8/bin/mysqlbinlog /usr/bin/mysqlbinlog
ln -s /mysql/mysql8/bin/mysql /usr/bin/mysql
一台机器需要安装manger和node两个包,其他只需要装node一个包
yum install -y mha4mysql-manager-0.56-0.el6.noarch.rpm
yum install -y mha4mysql-node-0.56-0.el6.noarch.rpm
七、配置MHA
MHA有一个全局配置文件/etc/masterha_default.cnf
,其为可选配置。我们可以自定义一个文件,为监控的 master/slave 集群提供一个专用的配置文件
mkdir /etc/mha_master
vim /etc/mha_master/mha.cnf
[server default]
##mha管理用户,我这边设置成与linux用户一样
user=root
##mha管理密码
password=123456
##mha_master自己的工作路径
manager_workdir=/etc/mha_master/ha
##mha_master自己的日志文件
manager_log=/etc/mha_master/manager.log
##每个远程主机的工作目录在何处
remote_workdir=/mysql/mha_master/ha
##基于ssh的密钥认证
ssh_user=root
##数据库用户名
repl_user=root
##数据库密码
repl_password=123456
##ping间隔时长
ping_interval=1
[server1]
hostname=XXX
ssh_port=22
##将来可不可以成为master候选节点/主节点
candidate_master=1
[server2]
hostname=XXX
ssh_port=22
candidate_master=1
[server3]
hostname=XXX
ssh_port=22
candidate_master=1
八、检查MHA
masterha_check_ssh --conf=/etc/mha_master/mha.cnf
检测成功
九、启动MHA
nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &
十、查看状态
masterha_check_status -conf=/etc/mha_master/mha.cnf
如果没有运行
看对应的日志文件/etc/mha_master/manager.log
cat /etc/mha_master/manager.log
十一、关闭一台主机器的数据库
mysql.server stop