mysql(六)MHA的MySQL高可用架构

本文详细介绍了如何在多个服务器上搭建高可用的MySQL集群,包括配置master和slave节点,使用MHA实现故障转移,以及通过SSH密钥管理和节点间免密设置确保集群稳定运行。

实验环境

server1 172.25.254.10master
server2 172.25.254.20slave
server3 172.25.254.30slave
server4 172.25.254.40MHA

高可用的搭建

(1)配置server1的mysql服务

 systemctl stop mysqld
 [root@server1 mysql]# rm -fr *
 vim /etc/my.cnf

 29 server-id=1
 30 gtid_mode=ON
 31 enforce_gtid_consistency=ON
 32 log_bin=binlog
 33 log_slave_updates=ON

 systemctl start mysqld
grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'172.25.12.%' IDENTIFIED BY 'Yan+123kou';
mysql> SHOW MASTER STATUS;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)配置server2的mysql服务

systemctl stop mysqld
 cd /var/lib/mysql
 rm -fr *
 vim /etc/my.cnf

server-id = 2
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog

systemctl start mysqld
grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> CHANGE MASTER TO MASTER_HOST='172.25.254.10',MASTER_USER='repl',MASTER_PASSWORD='LIxin123.',MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)配置server3的mysql服务

systemctl stop mysqld

 vim /etc/my.cnf
加入:
server-id=3
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog

 rm -fr *

systemctl start mysqld
 grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> CHANGE MASTER TO MASTER_HOST='172.25.254.10',MASTER_USER='repl',MASTER_PASSWORD='LIxin123.',MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动实现一个master坏了选举出新的master

1.server4上安装需要的软件
在这里插入图片描述
在这里插入图片描述
2.生成ssh密钥,管理节点是不需要输入密码,将生成的公钥和私钥传给数据节点

[root@server4 ~]# ssh-keygen
[root@server4 ~]# ssh-copy-id server1
[root@server4 ~]# ssh-copy-id server2
[root@server4 ~]# ssh-copy-id server3

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

让server123之间免密

[root@server4 ~]# scp -r .ssh server1:
[root@server4 ~]# scp -r .ssh server2:
[root@server4 ~]# scp -r .ssh server3:

在这里插入图片描述
(3)将节点的安装包传给数据节点

oot@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server1:/root/
[root@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server2:/root/
[root@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server3:/root/

在这里插入图片描述
(4)数据节点安装
server123都一样的操作

[root@server1 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm 
[root@server2 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm 
[root@server3 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm

在这里插入图片描述
(5)管理节点创建一个目录,编辑配置文件
在这里插入图片描述
在这里插入图片描述
(6)管理节点ssh检查管理节点ssh检查
在这里插入图片描述
(7)数据节点授权

mysql> grant all on *.* to root@'%' identified by 'Yan+123';

在这里插入图片描述
(8)管理节点环境健康检查

[root@server4 ~]# masterha_check_repl --conf=/etc/masterha/master.cnf 

在这里插入图片描述
(9)手动替换master

关闭当前的master节点的mysql服务:
[root@server1 ~]# systemctl stop mysqld
手动替换master节点:
[root@server4 ~]# masterha_master_switch --master_state=dead 
--conf=/etc/masterha/master.cnf  --dead_master_host=172.25.254.10
--dead_master_port=3306 --new_master_host=172.25.254.20 --new_master_port=3306

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启server1的master服务,将他的master改为server2

在这里插入图片描述

手动实现所有数据库都在线的时候,切换master节点

(1)删除之前生成的文件

[root@server4 ~]# cd /etc/masterha/
[root@server4 masterha]# rm -fr   master.failover.complete

在这里插入图片描述

(2)输入命令自动替换

masterha_master_switch --conf=/etc/masterha/master.cnf --master_state=alive --
new_master_host=172.25.254.10 --new_master_port=3306 --orig_master_is_new_slave 
--running_updates_limit=10000

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动切换VIP漂移

(1)server4创建一个检测进程

nohup masterha_manager  --conf=/etc/masterha/zp.cnf &> /dev/null &

在这里插入图片描述
此时:在这里插入图片描述
(2)关闭server1的mysql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全自动实现vip的自动漂移

(1)下载两个脚本,给两个脚本加上可执行权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)编辑配置文件,加入两行内容
在这里插入图片描述
(3)给server2(当前master)上添加一个vip
在这里插入图片描述
(4)server4 手动切换master到server1
在这里插入图片描述
在这里插入图片描述
(5)查看结果

此时vip转移到server1上,server2上的vip自动删除
在这里插入图片描述

使用脚本实现全自动切换master

创建监控master的进程
在这里插入图片描述
server1关闭mysql服务

在这里插入图片描述
在这里插入图片描述
server2可以查看到vip
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值