文章目录
MHA的概念
MHA 的组成
MHA特点
主从复制+MAH
https://editor.csdn.net/md/?articleId=118904445
实验环境
//
MySQL服务器
master 192.168.142.142 安装 node 组件
slave1 192.168.142.143 安装 node 组件
slave2 192.168.142.144 安装 node 组件
MHA-manager
192.168.142.141 管理节点,安装 manager 组件与node组件
配置软连接
做好主从复制并重启后,配置软连接
将mysql命令和mysql日志文件软连接到/usr/sbin/便于系统识别
//
[root@slave2 ~]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/
[root@slave2 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
配置MySQL一主两从
为防止master挂掉myslave能及时替换,从服务器也需要提权
授权给两个用户myslave和mha
//
grant replication slave on *.* to 'myslave'@'192.168.142.%' identified by '123123';
grant all privileges on *.* to 'mha'@'192.168.142.%' identified by 'manager';
以下三条都是为了防止MHA检查MySQL检查不通过,理论可不加
//
grant all privileges on *.* to 'mha'@'master' identified by 'manager';
grant all privileges on *.* to 'mha'@'slave1' identified by 'manager';
grant all privileges on *.* to 'mha'@'slave2' identified by 'manager';
所有从库开启只读功能,刷新权限表
//
mysql> set global read_only=1;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
测试检查
安装MHA
所有服务器安装node,manager服务器还要安装manager组件
在此之前先安装环境
//
[root@manager ~]# yum -y install epel-release --nogpgcheck
[root@manager ~]# yum install -y perl-DBD-MySQL \
> perl-Config-Tiny \
> perl-Log-Dispatch \
> perl-Parallel-ForkManager \
> perl-ExtUtils-CBuilder \
> perl-ExtUtils-MakeMaker \
> perl-CPAN
同步所有服务器时间
//
[root@manager ~]# ntpdate ntp.aliyun.com ##所有服务器都做
24 Jul 19:42:29 ntpdate[92335]: step time server 203.107.6.88 offset -1.348249 sec
安装node和manager
把node组件压缩包拖到所有服务器的opt下,并解压安装
//
[root@manager opt]# tar xf mha4mysql-node-0.57.tar.gz -C /root
[root@manager opt]# cd /root/mha4mysql-node-0.57/
[root@manager mha4mysql-node-0.57]# perl Makefile.PL
[root@manager mha4mysql-node-0.57]# make && make install
安装好node组件后有这几个脚本
把manager压缩包拖到manager服务器的opt下,并解压安装
//
[root@manager opt]# tar xf mha4mysql-manager-0.57.tar.gz -C /root //解压还原
[root@manager opt]# cd /root/mha4mysql-manager-0.57/
[root@manager mha4mysql-manager-0.57]# perl Makefile.PL make && make install
在所有服务器上设置ssh免密登录
//
ssh-keygen -t dsa
ssh-copy-id 192.168.142.141
ssh-copy-id 192.168.142.142
ssh-copy-id 192.168.142.143
ssh-copy-id 192.168.142.144
亲测无密码认证
使用脚本管理VIP
//
[root@manager ~]# cp -ra /root/mha4mysql-manager-0.57/samples/scripts/ /usr/local/bin
[root@manager ~]# ls /usr/local/bin/
[root@manager ~]# ls /usr/local/bin/scripts/
[root@manager ~]# cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin
[root@manager ~]# vim /usr/local/bin/master_ip_failover
创建MHA软件目录
//
[root@manager bin]# mkdir /etc/masterha //创建软件目录
[root@manager bin]# cp /root/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha/ //拷贝配置文件
[root@manager bin]# vim /etc/masterha/app1.cnf //修改为以下配置