install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles
install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
vim /etc/hosts
192.168.10.248 Manager
192.168.10.73 Master
192.168.10.254 Slave1
192.168.10.249 Slave2
#Manager
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.73
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.249
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.254
#M
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.248
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.249
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.254
#S1
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.248
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.249
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.73
#S2
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.248
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.254
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.73
install cpan -y
install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
cpan ExtUtils::Install
cpan
install ExtUtils::Constant
install Socket
#所有节点都要安装
wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58.tar.gz
tar xf mha4mysql-node-0.58.tar.gz
cd mha4mysql-node-0.58
perl Makefile.PL
make && make install
cpan
install ExtUtils::Constant
install Socket
#M
install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes -y
wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58.tar.gz
tar xf mha4mysql-manager-0.58.tar.gz
cd mha4mysql-manager-0.58
perl Makefile.PL
make && make install
cp ./samples/scripts/* /usr/local/bin/
[root@localhost scripts]# pwd
/tmp/mha4mysql-manager-0.58/samples/scripts
[root@localhost scripts]# ll
total 32
-rwxr-xr-x 1 1000 1000 3648 Mar 23 2018 master_ip_failover
-rwxr-xr-x 1 1000 1000 9870 Mar 23 2018 master_ip_online_change
-rwxr-xr-x 1 1000 1000 11867 Mar 23 2018 power_manager
-rwxr-xr-x 1 1000 1000 1360 Mar 23 2018 send_report
#自动切换时vip管理的脚本,不是必须,如果我们使用keepalived的,我们可以自己编写脚本完成对vip的管理,比如监控mysql,如果mysql异常,我们停止keepalived就行,这样vip就会自动漂移
#在线切换时vip的管理,不是必须,同样可以可以自行编写简单的shell完成
#故障发生后关闭主机的脚本,不是必须
#因故障切换后发送报警的脚本,不是必须,可自行编写简单的shell完成。
#配置
mkdir -p /opt/masterha
cp /tmp/mha4mysql-manager-0.58/samples/conf/app1.cnf /opt/masterha
/opt/masterha/app1.cnf
#检测ssh
masterha_check_ssh --conf=/opt/masterha/app1.cnf
#All SSH connection tests passed successfully. 成功
#检测复制状态
masterha_check_repl --conf=/opt/masterha/app1.cnf
#MySQL Replication Health is OK. 成功
#启动MHA
mkdir /var/log/masterha -p
nohup masterha_manager --conf=/opt/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1-manager.log 2>&1 &
#查看MHA状态
masterha_check_status --conf=/opt/masterha/app1.cnf
app1 (pid:3384) is running(0:PING_OK), master:192.168.10.73
#关闭
masterha_stop --conf=/opt/masterha/app1.cnf
Stopped app1 successfully
#日志
Got terminate signal. Exit