mysql高可用之MHA的搭建
- 3节点,服务器环境 centos 7.5, mysql 5.7, 同步节点时间
安装perl mysql模块,可以使用yum,需先安装epel源
1
yum install perl-DBD-MySQL -y
安装MHA:
3台机器上都要安装 mha4mysql-node
1
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
管理机器上安装 mha4mysql-manager
1
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
脚本管理,均在 app1.cnf 文件中进行配置
1
2
3
4master_ip_failover #自动切换时vip管理的脚本,不是必须,如果我们使用keepalived的,我们可以自己编写脚本完成对vip的管理,比如监控mysql,如果mysql异常,我们停止keepalived就行,这样vip就会自动漂移
master_ip_online_change #在线切换时vip的管理,不是必须,同样可以可以自行编写简单的shell完成
power_manager #故障发生后关闭主机的脚本,不是必须
send_report #因故障切换后发送报警的脚本,不是必须,可自行编写简单的shell完成
遇见的一些错误总结
Can’t exec “mysqlbinlog”:
1
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 532.
解决方案:
1
2type mysqlbinlog
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlogMHA只能应对一次故障转移,并会在配置的 manager_workdir 目录下生产记录文件,如果要再次启用请清理该目录下 app1.failover.complete 文件