MySQL自身提供的一种高可用解决方案,数据同步方法采用的是MySQL replication技术。MySQL replication就是从服务器到主服务器拉取二进制日志文件,然后再将日志文件解析成相应的SQL在从服务器上重新执行一遍主服务器的操作,通过这种方式保证数据的一致性。

为了达到更高的可用性,在实际的应用环境中,一般都是采用MySQL replication技术配合高可用集群软件keepalived来实现自动failover

mysql主从复制及高可用_第1张图片


实验环境如下

mysql主从复制及高可用_第2张图片

数据库编译过程略,下面开始进入配置过程。

Host01     /etc/my.cnf文件中的“[mysqld]”段添加如下内容:

mysql主从复制及高可用_第3张图片

Host02     /etc/my.cnf文件中的“[mysqld]”段添加如下内容:

mysql主从复制及高可用_第4张图片


首先在host01mysql库中创建复制用户,操作过程如图所示。

mysql主从复制及高可用_第5张图片

然后在host02mysql库中将host01设为自己的主服务器,操作过程如图所示。

mysql主从复制及高可用_第6张图片

host01 主数据库上面创建数据库kkk,在host02备用数据库观察是否同步过来

Host01上面操作

mysql主从复制及高可用_第7张图片

Host02上面观察

mysql主从复制及高可用_第8张图片

可以看到数据库kkk同步过来了,说明主从同步成功


两台数据库安装高可用软件keepalived,安装过程这里略过

主库host01  keepalived配置如下

mysql主从复制及高可用_第9张图片

从库host02配置如下

mysql主从复制及高可用_第10张图片

查看VIP地址情况,注意VIP地址只能出现在一端,两端都有说明出现了脑裂

mysql主从复制及高可用_第11张图片

开启第三台机器作为客户端连入VIP地址测试

mysql主从复制及高可用_第12张图片


在主从服务器上面做好客户端的授权操作

mysql主从复制及高可用_第13张图片


客户端连入VIP登陆测试

mysql主从复制及高可用_第14张图片


可以看到此时连入的是主库,此时模拟故障,将主库mysql停掉观察现象

 

主库上面,可以看到VIP地址被移除了

mysql主从复制及高可用_第15张图片


从库上面,VIP地址已经漂移过来

mysql主从复制及高可用_第16张图片

客户端上面,可以看到确实连接到了从库

mysql主从复制及高可用_第17张图片


mysql主从复制及高可用_第18张图片