目前mha最新的版本代码已经不放到google code网站了,而是放在github上,最新的版本为0.58,github链接如下:
mha manager:https://github.com/yoshinorim/mha4mysql-manager
mha node:https://github.com/yoshinorim/mha4mysql-node
安装MHA服务器和客户端
# yum install perl-DBD-MySQL
/etc/masterha/app1.cnf 配置文件
[server default] manager_workdir=/etc/masterha/app1 //设置manager的工作目录 manager_log=/var/log/masterha/app1/manager.log //设置manager的日志 secondary_check_script= masterha_secondary_check -s 192.168.60.166 -s 192.168.60.167 master_ip_failover_script=/usr/local/master_ip_failover //设置自动failover时候的切换脚本 user=mha password=123456 ssh_user=root //设置ssh的登录用户名 repl_user=repl //设置复制环境中的复制用户名 repl_password=123456 //设置复制用户的密码 ping_interval=1 //设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候自动进行 [server1] hostname=192.168.60.166 candidate_master=1 check_repl_delay=0 master_binlog_dir=/usr/local/mysql/data [server2] hostname=192.168.60.167 candidate_master=1 //设置为候选master,如果设置该参数以后,发生主从切换以后将会将此从库提升为主库 check_repl_delay=0 #如果候选master有延迟的话,relay日志超过100m,failover切换不能成功,加上此参数后会忽略延迟日志大小。 master_binlog_dir=/usr/local/mysql/data [server3] hostname=192.168.60.168 no_master=1 #从不将这台主机转换为master ignore_fail=1 #如果这个节点挂了,mha将不可用,加上这个参数,slave挂了一样可以用 master_binlog_dir=/usr/local/mysql/data
在manager节点上:
# yum install perl-DBD-MySQL # yum install perl-Config-Tiny # yum install perl-Log-Dispatch # yum install perl-Parallel-ForkManager
# yum install -y rrdtool perl-rrdtool rrdtool-devel perl-Params-Validate
运行 masterha_check_repl --conf=/etc/masterha/app1.cnf 报错:
Testing mysql connection and privileges..sh: mysql: command not found
找不到mysql命令,把你mysql安装的目录下的bin目录,做一个软链接就可以了
ln -s /usr/local/mysql/bin/mysql /usr/bin
运行masterha_check_repl --conf=/etc/masterha/app1.cnf 报错:
Can't exec "mysqlbinlog": 没有那个文件或目录 at /usr/share/perl5/vendor_perl/MHA/BinlogManager.pm line 106.
在node节点上执行 which mysqlbinlog,比如我的结果就是
[localhost~]$ which mysqlbinlog
/usr/local/mysql/bin/mysqlbinlog
需要做一个软连接
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
yum包老是缺少包:修改yum的源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
阿里云: http://mirrors.aliyun.com/help/epel