本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn
摘要:
本篇是自己搭建的一篇mysql MHA文章
前面的安装步骤基本不变,后面的比如keepalived的配置文件有几种方法
其实想完成keepalived+lvs+atlas(mycat)+mha+mysql主从复制 这样的架构,只是MYCAT单独文章了
每个节点都关闭防火墙,SELINUX。
1、安装epel yum源
wget http://mirrors.hustunique.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://mirrors.hustunique.com/epel/RPM-GPG-KEY-EPEL-6
rpm --import RPM-GPG-KEY-EPEL-6rpm-ivh epel-release-6-8.noarch.rpm
2、所有节点安装MHA node所需的perl模块(DBD:mysql)
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-devel
3、建立主从复制
在node1 master上(node2上也要执行)
grant replication slave on *.* to 'backup'@'192.168.10.%'identified by'backup';
grant all privileges on*.* to 'root'@'192.168.10.%'identified by'123456';
show master status;
在node2 node3 slave上
change master to master_host='192.168.10.120', master_user='backup', master_password='backup',master_port=3306, master_log_file='mysql-bin.000001',master_log_pos=120,master_connect_retry=1;
start slave;
show slave status \G;
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
4、ssh-keygen实现三台机器之间相互免密钥登录 在每个节点上都执行下面语句
ssh-keygen -t rsassh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.120
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.121
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.122
5、三节点安装mha4mysql-node-0.56,node3上安装mha4mysql-manager-0.56
在node1 node2 node3安装mha4mysql-node
wget https://googledrive.com/host/0B1lu97m8-haWeHdGWXp0YVVUSlk/mha4mysql-node-0.56.tar.gz
tar xf mha4mysql-node-0.56.tar.gz
cd mha4mysql-node-0.56
perlMakefile.PLmake && make install
注:若运行 perl Makefile.PL时报Can’t locate CPAN.pm in @INC这个错时,表示没有安装CPAN模块:
wget http://www.cpan.org/authors/id/A/AN/ANDK/CPAN-2.10.tar.gz
tar -zxvf CPAN-2.10.tar.gz
cd CPAN-2.10
perl Makefile.PL
make
make install
在node3上安装mha4mysql-manager
# 首先安装依赖包yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles perl-Time-HiReswget https://googledrive.com/host/0B1lu97m8-haWeHdGWXp0YVVUSlk/mha4mysql-manager-0.56.tar.gz
tar xf mha4mysql-manager-0.56.tar.gz
cd mha4mysql-manager-0.56
perlMakefile.PLmake && make install
在node3上管理MHA配置文件
mkdir -p /etc/mha/{app1,scripts}cp -r mha4mysql-manager-0.56/samples/conf/*/etc/mha/
cp -r mha4mysql-manager-0.56/samples/scripts/* /etc/mha/scripts/
mv /etc/mha/app1.cnf /etc/mha/app1/
mv /etc/mha/masterha_default.cnf /etc/masterha_default.cnf
6、在manager上设置全局配置:
vim /etc/masterha_default.cnf
[server default]
user=root
password=123456ssh_user=root
repl_user=backup
repl_password=backup
ping_interval=1#shutdown_script=""secondary_check_script=masterha_secondary_check-s node1 -s node2 -s node3 --user=root --master_host=node1 --master_ip=192.168.10.120 --master_port=3306#master_ip_failover_script="/etc/mha/scripts/master_ip_failover"#master_ip_online_change_script="/etc/mha/scripts/master_ip_online_change"# shutdown_script= /script/masterha/power_manager
#report_script=""
# 创建日志目录
mkdir -p /var/log/mha/app1
vim /etc/mha/app1/app1.cnf
# master_binlog_dir 要是mysql的binlog目录,否则验证会报错
[server default]
manager_workdir=/var/log/mha/app1
manager_log=/var/log/mha/app1/manager.log
[server1]hostname=node1
master_binlog_dir="/usr/local/mysql/logs"candidate_master=1[server2]hostname=node2
master_binlog_dir="/usr/local/mysql/logs"candidate_master=1[server3]hostname=node3
ma