说明
mysql双主模式下,在任意一台mysql上写数据都会同步到另一台上,本章通过keepalived VIP实现如果一台服务挂了会自动切换到另一台mysql上.
配置
# 安装keepalived,centos默认安装了yum install keepalived -y
修改双主机/etc/keepalived/keepalived.conf配置.
global_defs { router_id mysql}vrrp_script chk_mysql { script "killall -0 mysqld" // 检测mysql进程是否存活 interval 2 timeout 2 fall 3}vrrp_instance mysql { state MASTER interface ens33 virtual_router_id 51 priority 100 // 另一台权重可以设置90,防止争抢VIP advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.41.140 // 设置虚拟ip } track_script { chk_mysql }}
测试
# 通过命令可以看到VIP已经在一台机器上了,也可以通过虚拟IP连接上mysql[root@mysql01 mysql]# ip addr sh ens332: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:26:c2:7e brd ff:ff:ff:ff:ff:ff inet 192.168.41.141/24 brd 192.168.41.255 scope global ens33 valid_lft forever preferred_lft forever inet 192.168.41.140/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe26:c27e/64 scope link valid_lft forever preferred_lft forever
# 关掉mysql服务,命令可能根据你安装方式有区别service mysql stop# 再次在两台机器上执行命令,可以看到VIP转移了,可以继续通过VIP连接mysqlip addr sh ens33