• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL之高可用集群部署及故障切换实现

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论
文章目录[隐藏]

一、MHA

 1、概念

2、MHA 的组成

3、MHA 的特点

二、搭建MySQL+MHA

思路和准备工作

1、MHA架构
数据库安装
一主两从
MHA搭建

2、故障模拟
模拟主库失效
备选主库成为主库
原故障主库恢复重新加入到MHA成为从库

3、准备4台安装MySQL虚拟机
MHA高可用集群相关软件包
MHAmanager IP:192.168.221.30
MySQL1 IP:192.168.221.20
MySQL2 IP:192.168.221.100
MySQL3 IP: 192.168.221.110

1、关闭防火墙,检测端口是否开启

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
netstat -natp | grep 3306

2、修改mysql节点的主机名

mysql1(192.168.221.20)

hostnamectl set-hostname mysql1
su -
hostnamectl set-hostname mysql2
su -
hostnamectl set-hostname mysql3
su -

3、修改三台MySQL服务器的主配置文件/etc/my.cnf,并创建命令软链接

MySQL1
vim /etc/my.cnf
[mysqld]
server-id = 1
log_bin = master-bin
log-slave-updates = true

systemctl restart mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

MySQL2
vim /etc/my.cnf
server-id = 2  
#server-id = 3  MySQL3则为3,三台服务器 server-id 不能一样
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index
systemctl restart mysqld

ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

4、配置MySQL一主两从

(1)所有MySQL服务器进行MySQL授权
mysql1(192.168.221.20)
mysql2(192.168.221.100)
mysql3(192.168.221.110)

3台都要配置
mysql -uroot -p123
grant replication slave on *.* to 'myslave'@'192.168.221.%' identified by '123';
grant all privileges on *.* to 'mha'@'192.168.221.%' identified by 'manager';
grant all privileges on *.* to 'mha'@'mysql1' identified by 'manager';
grant all privileges on *.* to 'mha'@'mysql2' identified by 'manager';
grant all privileges on *.* to 'mha'@'mysql3' identified by 'manager';
flush privileges;
show master status;
(2)在 Slave1、Slave2 节点执行同步操作
change master to master_host='192.168.221.20',master_user='myslave',master_password='123',master_log_file='master-bin.000005',master_log_pos=1991;

start slave;

show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

#一般 Slave_IO_Running: No 的可能性:
#网络不通
#my.cnf配置有问题
#密码、file文件名、pos偏移量不对
#防火墙没有关闭
(3)Slave1、Slave2 节点设置为只读模式
mysql2(192.168.221.100)
mysql3(192.168.221.110)

set global<a>本文来源gao($daima.com搞@代@#码(网</a> read_only=1;
#改回读写状态set global read_only=0;
(4)主从复制验证
mysql1(192.168.221.20)
创建库

create database srs;
use test;
create table test(id int);
insert into test values(1);

mysql2(192.168.221.100)
mysql3(192.168.221.110)
查询库验证

show databases;

5、安装 MHA 软件

(1)所有服务器上都安装 MHA 依赖的环境
MHAmanager(192.168.221.30)
mysql1(192.168.221.20)
mysql2(192.168.221.100)
mysql3(192.168.221.110)

首先安装 epel 源,需要在线源安装
再在所有服务器上安装 node 组件
#安装在线源
mv /etc/yum.repos.d/repos.bak/CentOS-* /etc/yum.repos.d/
yum list

yum install epel-release --nogpgcheck -y

yum install -y perl-DBD-MySQL \
perl-Config-Tiny \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
perl-ExtUtils-CBuilder \
perl-ExtUtils-MakeMaker \
perl-CPAN

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL之高可用集群部署及故障切换实现
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址