前提:找一台额外的机器,必须要有5.6以上的版本,支持gtid并开启,这里我们直接用的第二个slave db03

vim /etc/mha/app1.cnf //新添加如下内容 [binlog1] no_master=1 hostname=192.168.137.144 master_binlog_dir=/data/mysql/binlog

提前创建好,这个目录不能和原有的binlog一致 mkdir -p /data/mysql/binlog chown -R mysql.mysql /data/mysql/* 修改完成后,将主库binlog拉过来(从000001开始拉,之后的binlog会自动按顺序过来)

cd /data/mysql/binlog -----》必须进入到自己创建好的目录

mysqlbinlog -R --host=192.168.137.142 --user=mha --password=mha --raw --stop-never mysql-bin.000001 &

重启MHA,生效配置:

重启mha masterha_stop --conf=/etc/mha/app1.cnf

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &

验证:masterha_check_status --conf=/etc/mha/app1.cnf


其他参数说明 ping_interval=2 manager检测节点存活的间隔时间,总共会探测4次。

#设置为候选master,如果设置该参数以后,发生主从切换以后将会将此从库提升为主库,即使这个主库不是集群中事件最新的slave candidate_master=1

#默认情况下如果一个slave落后master 100M的relay logs的话,MHA将不会选择该slave作为一个新的master, 因为对于这个slave的恢复需要花费很长时间,通过设置check_repl_delay=0, MHA触发切换在选择一个新的master的时候将会忽略复制延时,这个参数对于设置了candidate_master=1的主机非常有用, 因为这个候选主在切换的过程中一定是新的master check_repl_delay=0 //无论如何,都切换到这个结点上来