mysql基于gtid实现一主二从和MHA实现mysql的高可用

本文档详细介绍了如何基于GTID在MySQL中建立一主二从的高可用环境,并利用MHA(Master High Availability)实现主从切换。首先,配置每个节点的MySQL服务,启用GTID模式并进行主从复制。接着,模拟主节点故障,展示MHA如何自动选择新的主节点并完成数据同步。最后,介绍MHA的原理和手动切换过程,以及VIP漂移的设置。
摘要由CSDN通过智能技术生成

环境设定
base2 172.25.78.12 主master
base3 172.25.78.13 从master,slave
base4 172.25.78.14 slave
配置base2
[root@base2 ~]# tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
[root@base2 ~]# yum install -y mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
[root@base2 ~]# vim /etc/my.cnf
log-bin=mysql-bin
server-id=1
gtid_mode =ON
enforce-gtid-consistency=true
[root@base2 ~]# systemctl start mysqld
[root@base2 mysql]# cat /var/log/mysqld.log | grep password
在这里插入图片描述
[root@base2 mysql]# mysql -p
Enter password:
mysql> alter user root@localhost identified by ‘Ting@666’; # 修改密码
mysql> grant replication slave on . to repl@‘172.25.78.%’ identified by ‘Ting@666’; # 授权
配置base3
[root@base3 ~]# tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
[root@base3 ~]# yum install -y mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
[root@base3 ~]# vim /etc/my.cnf
server_id=2
gtid_mode =ON
enforce-gtid-consistency=true
log_bin = mysql-log
log_slave_updates=ON
[root@base3 ~]# systemctl start mysqld
[root@base3 ~]# cat /var/log/mysqld.log | grep password
[root@base3 ~]# mysql -p
Enter password:
mysql> alter user root@localhost identified by ‘Ting@666’;
mysql> stop slave;
mysql> change master to master_host=‘172.25.78.12’,master_user=‘repl’,master_password=‘Ting@666’,MASTER_AUTO_POSITION=1;
mysql> start slave;
mysql> show slave status\G; #保证连接成功
在这里插入图片描述
配置base4
[root@base4 ~]# tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
[root@base4 ~]# yum install -y mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
[root@base4 ~]# vim /etc/my.cnf
server_id=3
gtid_mode =ON
enforce-gtid-consistency=true
log_bin = mysql-log
log_slave_updates=ON

[root@base4 ~]# cat /var/log/mysqld.log | grep password
在这里插入图片描述
[root@base4 mysql]# mysql -p
Enter password:
mysql> alter user root@localhost identified by ‘Ting@666’;
mysql> stop slave;
mysql> change master to master_host=‘172.25.78.13’,master_user=‘repl’,master_password=‘Ting@666’,MASTER_AUTO_POSITION=1;
mysql> start slave;
mysql> show slave status\G;
在这里插入图片描述
测试环境是否搭建成功
base2上创建数据库:
mysql> create database test;
mysql> use test;
mysql> create table userlist(
-> username varchar(15) not null,
-> password varchar(25) not null);
mysql> insert into userlist values (‘user1’,‘111’);
mysql> insert into userlist values (‘user1’,‘222’);
mysql> select * from userlist;
在这里插入图片描述
在base3上(base2的slave端)查看数据是否同步:
mysql> use test;
mysql> select * from userlist;
在这里插入图片描述
在base4(base3的slave端)查看数据是否同步:
mysql> use test;
Database changed
mysql> select * from userlist;
在这里插入图片描述
同步成功就说明一主二从环境搭建成功
现在模拟主master宕机
[root@base2 mysql]# systemctl stop mysqld
在从master&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值