1.剧情回顾

    在之前的博客上,我做了一个MySQL主从配置的实验,链接在这:https://blog.51cto.com/superpcm/2094958 。在这里我决定把这两个数据库做成互为主从,然后在这两个互为主从的数据库上配置keepalived,实现高可用,怎么配置可以参考我前文高可用的实验博客,https://blog.51cto.com/superpcm/2095395 。

    最后实现的的拓扑图如下:

MySQL互为主从+Keepalived高可用数据库集群

2.配置MySQL 互为主从复制

    之前可能没有说明,实验默认都是开放所有端口给同一网段的,iptables里面设置。

iptables -I INPUT -s 192.168.31.0/24 -j ACCEPT
/etc/init.d/iptables save

    (1)设置MySQL02(原来的从数据库)的配置文件,vim /etc/my.ini,增加一行log-bin,然后重启数据库:/etc/init.d/mysqld restart

MySQL互为主从+Keepalived高可用数据库集群

MySQL互为主从+Keepalived高可用数据库集群

    (2)查看MySQL02上的master状态,记录下file和position的数据。

MySQL互为主从+Keepalived高可用数据库集群

    (3)在MySQL01数据库上添加change master。

CHANGE MASTER TO
MASTER_HOST='192.168.31.53',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='pcm123456',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=712372;

MySQL互为主从+Keepalived高可用数据库集群

    (4)启动slave,查看slave的状态。在这里就成功了,如果要测试的话,可以像之前的博文那样测试。

MySQL互为主从+Keepalived高可用数据库集群

3.用Keepalived实现数据库的高可用。

    (1)安装keepalived软件,设置为开机启动

yum install keepalived
echo "/etc/init.d/keepalived start" >>/etc/rc.local

    (2)配置keepalived的配置文件,主要的配置如下。

MySQL互为主从+Keepalived高可用数据库集群MySQL互为主从+Keepalived高可用数据库集群

    (3)启动keepalived软件,检查是否在MySQL01上生成VIP:192.168.31.54

MySQL互为主从+Keepalived高可用数据库集群

    (4)上面出现只在MySQL01上VIP则是成功了,可以在01上关闭keepalived然后检查02会不会出现VIP。然后在其他的设备上查看能不能通过vip登陆mysql。这里由于我前面在web01和web02上搭建了wordpress,我直接修改wordpress的配置文件,把数据库指向为192.168.31.54。

vim /usr/local/nginx/html/blog/wp-config.php
define('DB_HOST', '192.168.31.54');

    (5)登陆wordpress,结果发现正常,更多测试结果这里不做提供。

MySQL互为主从+Keepalived高可用数据库集群