在MySQL 8.0中,可以通过配置双主复制和Keepalived来实现高可用性。以下是配置步骤和示例:
- 确保两台服务器上的MySQL已经安装并正确配置。
- 在两台服务器上创建复制用户并配置复制。
- 配置Keepalived,确保一个虚拟IP(VIP)在故障转移时能够自动转移到备服务器。
以下是示例配置:
MySQL配置(在两台服务器上):
-- 在主服务器1上
CHANGE MASTER TO MASTER_HOST='主服务器2的IP', MASTER_USER='replication_user', MASTER_PASSWORD='replication_password';
-- 在主服务器2上
CHANGE MASTER TO MASTER_HOST='主服务器1的IP', MASTER_USER='replication_user', MASTER_PASSWORD='replication_password';
START SLAVE;
Keepalived配置:
安装Keepalived:
sudo apt-get install keepalived
配置文件 /etc/keepalived/keepalived.conf
:
vrrp_instance VI_1 {
state MASTER # 在主服务器上设置为MASTER,备服务器上设置为BACKUP
interface eth0 # 替换为实际网络接口
virtual_router_id 51
priority 100 # 主服务器设置较高的优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
2.168.1.100/24 # 设置为主服务器的本地网络
}
}
启动Keepalived服务:
sudo systemctl start keepalived
确保两台服务器的防火墙设置允许对应的Keepalived和MySQL端口通讯。
注意:
- 替换
MASTER_HOST
,MASTER_USER
,MASTER_PASSWORD
,interface
和virtual_ipaddress
为你的实际配置。 - 优先级
priority
应该根据实际情况设置,一般主服务器设置较高值。 - 在配置Keepalived时,确保
virtual_router_id
和priority
在两台服务器上是唯一的。 - 这个配置假设你有一个专用的网络接口用于虚拟IP,并且相应的权限配置允许Keepalived在该接口上配置虚拟IP。
这样配置后,当主服务器发生故障时,Keepalived会检测到,并将VIP转移到备服务器上,从而自动接管服务。