基于centos/7。搭建MHA高可用架构
1、软件版本
软件 | 版本 |
---|---|
mysql | 5.7 |
虚拟机系统 | centos/7 |
MHA | 0.5.8 |
我使用的是mac,所以使用vagrant 搭建的虚拟机环境。
2、环境&架构
机器 | ip |
---|---|
master | 192.168.33.10 |
Slave1 | 192.168.33.11 |
Slave2 | 192.168.33.12 |
mhaManager | 192.168.33.13 |
3、Mysql服务主从搭建
3.1、master&slave节点安装mysql
下载mysql
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
解压
tar -xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
安装
安装mysql之前需要移除CentOS自带的mariadb
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
只需要安装这几个包就可以了,安装顺序
rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm
如果出现错误:
是因为缺少相关插件,安装一下就ok看了
yum install libaio
yum install net-tools
yum install perl
如果出现各种连接不上mysql的错误:
重启下试试
systemctl restart mysqld
rpm常用的命令有以下几个:
-i, --install 安装软件包
-v, --verbose 可视化,提供更多的详细信息的输出
-h, --hash 显示安装进度
-U, --upgrade=<packagefile>+ 升级软件包
-e, --erase=<package>+ 卸载软件包
--nodeps 不验证软件包的依赖
组合可得到几个常用命令:
安装软件:rpm -ivh rpm包名
升级软件:rpm -Uvh rpm包名
卸载软件:rpm -e rpm包名
查看某个包是否被安装 rpm -qa | grep 软件名称
启动
初始化
mysqld --initialize --user=mysql
查看初始密码
mysql 初始的初始密码是mysql随机生成的,所以这里需要查看生成的初始密码。
cat /var/log/mysqld.log | grep password
修改密码
为了方便记住密码,我们这里修改下mysql的密码,(登录到mysql,进行修改)
#登录mysql之后
SET PASSWORD = PASSWORD('root');
启动mysql服务
systemctl start mysqld
配置为开机启动
systemctl enable mysqld
3.2、关闭防火墙
为了避免影响访问受限,这里面我们先把防火墙关闭,不然可能需要配置iptables规则。
#关闭 firewalld
systemctl stop firewalld;
#关闭 iptables
systemctl stop iptables;
#关闭开机启动
systemctl disable firewalld;
3.3 MySQL主从配置
Master节点
这里需要思考下,因为我们搭建MHA架构是为了能够完成节点挂掉之后能够完成master节点的切换,所以这里的master节点除了要开启binlog日志之外,也要开启relaylog日志,才能完成切换之后的主从复制。
修改mysql配置文件
vi /etc/my.cnf
增加配置
#bin_log配置
log_bin=mysql-bin #开启binlog
server-id=1
sync-binlo