安裝基本環(huán)境:
master:192.168.0.1
node:192.168.0.2 192.168.0.3
vip:192.168.0.101
1、機器添加ssh信任
ssh-keygen
cat ~/.ssh/ip_rsa.pub >> ~/.ssh/authorized.keys
rm kown_hosts
chomod 600 authorized.keys
scp –r .ssh 192.168.0.2:~/
scp -r .ssh 192.168.0.3:~/
2、下載mha
master:https://github.com/yoshinorim/mha4mysql-manager/releases
node:https://github.com/yoshinorim/mha4mysql-node/releases
3、在三臺機器中安裝依賴
安裝epel源
yum install -y epel-release
安裝perl
yum install perl-DBD-MySQL
yum install perl-Config-Tiny
yum install perl-Log-Dispatch
yum install perl-Parallel-ForkManager
4、安裝mysql,部署主從結(jié)構(gòu)
master 192.168.0.1 >> slave:192.168.0.2 192.168.0.3
創(chuàng)建mha賬號
5、安裝mha node
在manager節(jié)點和node節(jié)點中都需要安裝mha node
rpm包安裝方式:
yum localinstall -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm
6、安裝mha manager
只在manager節(jié)點上安裝
rpm包安裝方式:
yum localinstall -y mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
7、MHA manager配置
mkdir /etc/masterha
vim /etc/masterha/app1.conf
[server default]
#mha manager 工作目錄
manager_workdir = /var/log/masterha/app1
manager_log = /var/log/masterha/app1/app1.log
remote_workdir = /var/log/masterha/app1
[server1]
hostname=192.168.0.1
master_binlog_dir = /data/mysql/mysql3306/logs
candidate_master = 1
check_repl_delay = 0
[server2]
hostname=192.168.0.2
master_binlog_dir=/data/mysql/mysql3306/logs
candidate_master=1
check_repl_delay=0
[server3]
hostname=192.168.0.3
master_binlog_dir=/data/mysql/mysql3306/logs
candidate_master=1
check_repl_delay=0
全局配置文件
vim /etc/masterha/masterha_defaults.conf
[server default]
#MySQL的用戶和密碼
user=root
password=root
#系統(tǒng)ssh用戶
ssh_user=root
#復制用戶
repl_user=repl
repl_password=repl4slave
#監(jiān)控
ping_interval=1
#shutdown_script=""
#切換調(diào)用的腳本
#master_ip_failover_script=/etc/masterha/master_ipfailover
#master_ip_online_change_script=/etc/masterha/master_ip_online_change
8、vip配置
綁定和刪除vip節(jié)點
[root@master masterha]# cat init_vip.sh
vip="192.168.0.101/32"
/sbin/ip addr add $vip dev eth0
root@master masterha]# cat drop_vip.sh
vip="192.168.0.101/32"
/sbin/ip addr del $vip dev eth0
配置vip故障切換腳本
master_ip_failover:https://github.com/yoshinorim/mha4mysql-manager/blob/master/samples/scripts/master_ip_failover
master_ip_online_change:https://github.com/yoshinorim/mha4mysql-manager/blob/master/samples/scripts/master_ip_online_change
根據(jù)作者的腳本來進行改寫配置。
9、測試配置文件
測試ssh
masterha_check_ssh --global-conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
測試主從結(jié)構(gòu),能不能啟動
masterha_check_slave --global-conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
報錯:
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln205] Slaves settings check failed!
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln413] Slave configuration failed.
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln424] Error happened on checking configurations. at /usr/local/bin/masterha_check_repl line 48
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln523] Error happened on monitoring servers.
[info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
在所有節(jié)點執(zhí)行:
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
執(zhí)行后再次報錯:
[info] Connecting to root@192.168.0.1(192.168.0.1:22)..
Can't exec "mysqlbinlog": No suchfile or directory at /usr/local/share/perl5/MHA/BinlogManager.pm line 106.
mysqlbinlog version command failed with rc1:0, please verify PATH, LD_LIBRARY_PATH, and client options
at/usr/local/bin/apply_diff_relay_logs line 493
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln205] Slaves settings check failed!
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln413] Slave configuration failed.
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln424] Error happened on checking configurations. at /usr/local/bin/masterha_check_repl line 48
[/usr/local/share/perl5/MHA/MasterMonitor.pm,ln523] Error happened on monitoring servers.
Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
在所有節(jié)點執(zhí)行
[root@master masterha]#type mysqlbinlog
[root@master masterha]#mysqlbinlog is/usr/local/mysql/bin/mysqlbinlog
[root@master masterha]#ln -s/usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
原因:都是沒有在指定位置找到相應(yīng)的文件,所以做一個軟鏈
10、MHA啟動和關(guān)閉
啟動:
第一次,手動綁定vip
sh /etc/masterha/init_vip.sh
masterha_manager --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf &
檢查MHA是否啟動和狀態(tài)
cat /var/log/masterha/app1.log
masterha_check_status --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
停止:
masterha_stop --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf