一、安装MHA基本环境
1. 安装MHA node
(1) 基本环境说明,本文参考互联网文章学习,搭建MHA与测试如下。
参考文档:
角色                IP地址            主机名    
=============================================    
Master              192.168.1.121     node1     
Slave               192.168.1.122     node2     
Slave               192.168.1.123     node3     
Monitor host        192.168.1.125     node5
(2) 在node1,node2,node3,node5操作:
# vi /etc/hosts
192.168.1.121  node1   
192.168.1.122  node2    
192.168.1.123  node3    
192.168.1.125  node5
安装MHA node节点软件包:
# rpm -ivh Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm    
# yum install perl-DBD-MySQL perl-CPAN -y    
# tar xf mha4mysql-node-0.56.tar.gz     
# cd mha4mysql-node-0.56    
# perl Makefile.PL        
# make && make install    
 
2. 安装MHA Manager
在node5管理节点上操作:注:MHA Manager主机也是需要安装MHA Node,MHA Manger
# yum install perl-DBD-MySQL perl-CPAN perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes -y   
# tar xf mha4mysql-manager-0.56.tar.gz    
# cd mha4mysql-manager-0.56    
# perl Makefile.PL    
# make && make install
#说明:安装的脚本程序都在/usr/local/bin/目录下。   
 
3. 节点间配置SSH登录无密码验证(MHA主机之间使用key登录)
在node5(Monitor):
# ssh-keygen -t rsa   
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node1    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node3
在node1(Master):
# ssh-keygen -t rsa   
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node3    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node5
在node2 (slave):
# ssh-keygen -t rsa   
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node1    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node3    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node5
在node3 (slave):
# ssh-keygen -t rsa   
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node1    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2    
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node5
二、搭建主从复制环境
1. 主从复制环境配置过程
(1) mysql安装过程略,但是三节点要创建如下链接
node1(主),node2(主备从),node3(从)
注意:创建如下链接:   
ln -s /usr/local/mysql/bin/* /usr/local/bin/
node1 my.cnf
server-id              = 1   
binlog-format          = ROW    
log-bin                = master-bin    
log-bin-index          = master-bin.index    
log-slave-updates      = true    
relay_log_purge        = 0
node2 my.cnf
server-id              = 2   
binlog-format          = ROW    
log-bin                = master-bin    
log-bin-index          = master-bin.index    
log-slave-updates      = true    
relay_log_purge        = 0
node3 my.cnf
binlog-format          = ROW   
log-bin                = mysql-bin    
relay-log              = slave-relay-bin    
relay-log-index        = slave-relay-bin.index    
log-slave-updates      = true    
server-id              = 11    
skip-name-resolve    
relay_log_purge        = 0
(2) 在node1 (Master)上备份一份完整的数据:
# mysqldump -uroot -p123456 --master-data=2 --single-transaction -R --triggers -A > all.sql
其中--master-data=2代表备份时刻记录master的Binlog位置和Position。
(3) 在node1 (Master)上创建复制用户:
mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';    
mysql> flush privileges;

