MySQL高可用架构MHA

MHA工作原理

在这里插入图片描述

部署MHA

1.配置四台主机ssh登录不用密码
ssh-keygen -t rsa
ssh-copy-id 192.168.100.10(20.30.102)
2.上传安装包,解压编译安装

在这里插入图片描述
配置yum仓库
vim /etc/yum.repos.d/mhapath.repo ##进入yum仓库,插入以下
[mha]
name=mhapath
baseurl=file:///root/mhapath
enabled=1
gpgchack=0

tar -zxvf mhapath.tar.gz ##安装
mount /dev/cdrom /mnt ##挂载
3.复制软件包和yum配置文件到其他主机

在这里插入图片描述
在这里插入图片描述
4.node节点安装软件依赖和软件包(所有主机都安装)
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager --skip-broken --nogpgcheck
rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm
在这里插入图片描述
安装完成会生成脚本文件
在这里插入图片描述
5,安装MHA Manager
yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN -y
安装报错的话 安装公钥
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
安装完成后,安装Manager软件包
在这里插入图片描述
安装完成生成脚本文件
在这里插入图片描述
5.安装完成后再master修改配置文件 最后重启服务
vim /etc/my.cnf ##进入配置文件,添加以下
log-bin=mysql-bin-master #启用二进制日志
server-id=1 #本机数据库ID 标示
binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名
binlog-ignore-db=mysql #不可以被从服务器复制的库
Systemctl restart mysqld #重启mysql
6.创建需要同步的库和表
在这里插入图片描述
最后给cong11授权
在这里插入图片描述
7.修改slave2配置文件添加以下
log-bin=mysql-slave1 #启用二进制日志
server-id=2 #本机数据库ID 标示
binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名
binlog-ignore-db=mysql #不可以被从服务器复制的库
log_slave_updates=1 #只有开启log_slave_updates,从库binlog才会记录主库同步的操作日志

Systemctl restart mysqld ##重启
8.授权
在这里插入图片描述
建立主从关系
在这里插入图片描述
9.修改slave2的配置文件添加以下
log-bin=mysql-slave1 #启用二进制日志
server-id=3 #本机数据库ID 标示
binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名
binlog-ignore-db=mysql #不可以被从服务器复制的库
log_slave_updates=1 #只有开启log_slave_updates,从库binlog才会记录主库同步的操作日志

Systemctl restart mysqld ##重启
10.授权
在这里插入图片描述
建立主从关系
在这里插入图片描述
11.在slave1和slave2设置read_only
mysql -uroot -e ‘set global read_only=1’ ##我这个mysql没有密码,有密码的-uroot后面打密码

12.创建MHA的工作目录,在创建相关配置文件
在这里插入图片描述
13.修改app1.cnf配置文件添加以下(在里面修改ip)
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
master_binlog_dir=/data/mysql/data
user=root
password=123456
ping_interval=1
remote_workdir=/tmp
repl_user=repl
repl_password=123456
ssh_user=root
[server1]
hostname=192.168.100.10
port=3306
[server2]
hostname=192.168.100.20
port=3306
candidate_master=1
check_repl_delay=0
[server3]
hostname=192.168.100.30
port=3306

在这里插入图片描述
14.设置relay log的清理方式(在每个slave节点上)
mysql -uroot -e ‘set global relay_log_purge=0’
在这里插入图片描述
15.检测ssh配置
masterha_check_ssh --conf=/etc/masterha/app1.cnf
在这里插入图片描述
16.检测整个复制环境
masterha_check_repl --conf=/etc/masterha/app1.cnf
在这里插入图片描述
17.检测MHA Manager的状态
masterha_check_status --conf=/etc/masterha/app1.cnf
在这里插入图片描述
18.开启MHA Manager监控
在这里插入图片描述
19.再次查看监控是否正常
masterha_check_status --conf=/etc/masterha/app1.cnf
在这里插入图片描述
20.查看启动日志
tail -n20 /var/log/masterha/app1/manager.log
在这里插入图片描述
关闭监控
masterha_stop --conf=/etc/masterha/app1.cnf
在这里插入图片描述
做到这里就结束啦,做的不好请谅解,如果有问题请小伙伴们留言鸭,谢谢!!

发布了3 篇原创文章 · 获赞 4 · 访问量 588

猜你喜欢

转载自blog.csdn.net/weixin_46381668/article/details/104478851