当前位置:首页 > 行业动态 > 正文

keepalived + mysql 虚IP双主配置

Keepalived结合MySQL可以配置双主高可用方案,通过虚拟IP实现故障转移。在两台MySQL服务器上安装Keepalived,配置相同的虚IP,并设置优先级和检查脚本。当主服务器宕机时,备服务器接管虚IP,继续提供服务。

配置Keepalived与MySQL实现虚拟IP双主高可用性

简介:

在构建高可用性数据库环境时,Keepalived结合MySQL复制技术可以提供一个有效的解决方案,通过配置双主架构和虚拟IP,可以在一个节点发生故障时自动切换到另一个节点,确保服务的连续性,本文将详细指导如何实现这一配置。

环境准备

在开始之前,请确保以下环境条件已满足:

1、两台服务器,分别作为主节点和备份节点。

2、MySQL已在两台服务器上安装并配置好主从复制。

3、Keepalived在两台服务器上安装完毕。

配置MySQL主从复制

主节点配置

1、编辑my.cnf文件,添加以下内容以开启二进制日志:

“`

[mysqld]

logbin=mysqlbin

serverid=1

“`

2、重启MySQL服务使配置生效。

3、创建用于复制的用户:

“`

CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘password’;

GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;

“`

4、获取主节点的二进制日志文件名和位置:

“`

SHOW MASTER STATUS;

“`

备份节点配置

1、编辑my.cnf文件,设置serverid为不同于主节点的值。

2、重启MySQL服务使配置生效。

3、在备份节点上配置主节点的信息:

“`

CHANGE MASTER TO

MASTER_HOST=’主节点IP’,

MASTER_USER=’repl’,

MASTER_PASSWORD=’password’,

MASTER_LOG_FILE=’主节点二进制日志文件名’,

MASTER_LOG_POS=主节点二进制日志位置;

“`

4、启动复制进程:

“`

START SLAVE;

“`

5、验证复制状态:

“`

SHOW SLAVE STATUSG;

“`

确保Slave_IO_Running和Slave_SQL_Running均为Yes。

配置Keepalived

主节点配置

1、编辑keepalived.conf配置文件,添加以下内容:

“`

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass mysecret

}

virtual_ipaddress {

192.168.1.100/24

}

}

“`

2、替换eth0为实际的网络接口名称。

3、替换mysecret为认证密码。

4、替换192.168.1.100为虚拟IP地址。

备份节点配置

1、编辑keepalived.conf配置文件,添加以下内容:

“`

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

priority 50

advert_int 1

authentication {

auth_type PASS

auth_pass mysecret

}

virtual_ipaddress {

192.168.1.100/24

}

}

“`

2、替换eth0为实际的网络接口名称。

3、替换mysecret为认证密码。

4、替换192.168.1.100为虚拟IP地址。

测试故障转移

1、在主节点上停止Keepalived服务:

“`

systemctl stop keepalived

“`

2、观察备份节点是否接管了虚拟IP地址。

3、在主节点上恢复Keepalived服务:

“`

systemctl start keepalived

“`

4、观察主节点是否重新接管了虚拟IP地址。

相关问题与解答

问题1:如何在Keepalived中配置多个虚拟IP?

答:在virtual_ipaddress块中添加多个IP地址即可。

virtual_ipaddress {
  192.168.1.100/24
  192.168.1.101/24
}

问题2:如何在Keepalived中配置不同的优先级?

答:使用priority参数设置优先级,主节点设置为priority 100,备份节点设置为priority 50。

0