售前咨询
技术支持
渠道合作

搭建Mysql MHA高可用集群+各种报错解决

mha下载地址,需要翻墙

管理软件

mha4mysql-manager-0.52-0.noarch.rpm

节点软件

mha4mysql-node-0.52-0.noarch.rpm

一、准备工作

db1-3需要先安装好Mysql,不会装的不用看下去了

 

三台机器都添加hosts表

 

实现4台机器间免密码登陆

在db1上执行shell

 

在db2上执行shell

在db3上执行shell

在db4上执行shell

在monitor上执行shell

建立Mysql直接主从同步

特别注意:每台DB的server id必须唯一

在DB1 上面建立同步账户

在DB2 上面建立同步账户,因为是备用master

打开防火墙

在db2上做主从,开防火墙

在db3上做主从,开防火墙

基础环境搭建好了

二、安装配置MHA

在monitir上安装

在db1-4上安装

在所有DB上面授权MHA管理账号

在monitor上面

先新建一个工作目录

编辑配置文件

验证SSH互认是否成功

[root@monitor ~]# masterha_check_ssh –conf=/etc/masterha_default.cnf

报错:这个错就是root@db2(192.168.30.212) to root@db4(192.168.30.214)之间互认还没完成,添加ssh认证即可

再来

通过检查

下一步

检查mysql主从复制

报错:

那是不是主从检查没通过呢,其实不是得,这是个坑,关键报错在这句

百度一下结果是这样的

http://ronaldbradford.com/blog/mysql-mha-and-perl-pathing-2013-08-26/

解决办法是在5台机器上面做软连接,把这个32位的依赖链接到64位的支持库里面去

解决完之后,再执行检查,又报错

这次报错提示找不到mysqlbinlog命令

我的mysql是编译安装的,添加了mysql bin目录的环境变量的,但是它竟然提示找不到这个命令,可能是没有读取/etc/profile文件吧,那我们就再做软连接到系统目录好了

解决:在所有db执行

再来检查,又错,再看

这次报错提示

那好吧,跟上面一样,软连接

问题解决

再来检查

这次终于正常通过了

启动MHA管理程序

一切正常

观察日志

看到目前启动正常 db2是master(不是说好的master是db1么?好吧,我之前做完切过一次了,所以master飘到db2了,大家凑合着看哈) db1 db3 db3是从机

到目前为止 MHA就搭起来了

三、做故障测试,把db2关掉,看下会不会主从自动切换到db1

关掉db2 mysql,我们来tail monitor日志

在刷了一大堆日志后,出现了这个汇总报告,主从切换成功

我们去db3 db4上面看下是不是真的切换成功了

再去看看db1,主从已经停止了(废话,都成master了,主从肯定停了)

至此,mha测试完成!

 

文章转载来自:ttlsa.com

上一篇:

下一篇:

相关文章