写在前面
之前搭建过MySQL5.7版本的MHA集群,因为一些需要,现进行MySQL8.0版本的MHA集群搭建,搭建步骤基本与5.7版本相似,所以某些测试部分、问题解决、安装包、mha的IP漂移配置文件可以参照我之前写的博文,但是有部分配置文件做了改动,且8.0版本的某些命令与5.7版本的也不尽相同,需要注意。
基于MySQL5.7安装部署MHA集群(一主一从)可查看MySQL高可用集群搭建(一主一从)-CSDN博客https://blog.csdn.net/qq_50948831/article/details/137970683?spm=1001.2014.3001.5501
版本说明
操作系统:centos7.6
MySQL: mysql-8.0.30-el7-x86_64.tar.gz
node: mha4mysql-node-0.58-0.el7.centos.noarch.rpm
manager:mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
IP规划
IP地址 |
主从同步角色 |
集群角色 |
主机名 |
11.146.121.21 |
管理主机 |
mha |
|
11.146.121.22 |
主库 |
当前主库 |
master |
11.146.121.23 |
从库 |
备用主库 |
slave1 |
11.146.121.24 |
从库 |
备用主库 |
slave2 |
11.146.121.25 |
虚拟IP |
VIP地址 |
系统配置
修改映射文件
vi /etc/hosts
#进入文件
11.146.121.21 mha
11.146.121.22 master
11.146.121.23 slave1
11.146.121.24 slave2
修改主服务器 从服务器节点的主机名
hostnamectl set-hostname mha
su
hostnamectl set-hostname master
su
hostnamectl set-hostname slave1
su
hostnamectl set-hostname slave2
su
关闭防火墙
systemctl stop firewalld #停止firewall
systemctl disable firewalld #禁止firewall开机启动
下面的部分是需要在总体部署完毕后开启防火墙,确保集群的安全
systemctl start firewalld #开启firewall
systemctl enable firewalld #开启firewall开机启动
禁掉Selinux
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
setenforce 0
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
修改limits.conf 文件
linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于Linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。(之前我都没设置过,本次是在查一些资料时候发现的,就设置了一下,但是没什么感觉)
vi /etc/security/limits.conf
#进入文件
mysql soft nproc 65535
mysql hard nproc 65535
mysql soft nofile 65535
mysql hard nofile 65535
配置SSH免密登录
1.准备工作
本次使用xftp连接到Linux服务器,将需要配置免密登录的服务器同时打开,以便同时发送命令。
2.生产密钥文件
(1)编辑每台服务器上的hosts文件:vi /etc/hosts,映射文件已经设置过,此处不再赘述。
(2)进入rsa公钥私钥的存放目录
cd /root/.ssh/
#如果是新装的服务器,需要自己先手动创建该目录:mkdir -p /root/.ssh/
(3)删除目录下的id_rsa,id_rsa.pub文件
rm -rf id_rsa
rm -rf id_rsa.pub
#删除前确认是否有被其他服务器使用
(4)在每台服务器上都生成新的公钥私钥文件,输入命令后需要连续输入三次回车
ssh-keygen -t rsa
(5)拷贝id_rsa.pub文件内容到authorized_keys文件中
cat id_rsa.pub >> authorized_keys
#新服务器需要自己手动创建authorized_keys:touch authorized_keys
3.配置集群免密
每