搭建mysql集群+keepalived高可用

准备

当前使用服务器:
192.168.131.130(管理节点)
192.168.131.131(数据节点1,sql节点1)
192.168.131.132(数据节点2,sql节点2)
vip(虚拟ip):192.168.131.150

分别在两台主机192.168.131.131与192.168.131.132服务器中添加vip,192.168.131.150(注:主机服务器ip,虚拟ip均应在同一网段) — ubuntu下添加虚拟ip

搭建mysql集群

ubuntu下mysql_cluster基础搭建

搭建keepalived

// 若未安装先进行安装
sudo apt-get install keepalived
// 新建并编辑keepalived.conf文件
vi /etc/keepalived/keepalived.conf

主服务器(192.168.131.132)keepalived.conf配置:

global_defs {
 notification_email {
      //可以添加邮件提醒
 }
 notification_email_from root@localhost
 smtp_server 127.0.0.1
 smtp_connect_timeout 30
 router_id LVS_DEVEL
}
vrrp_instance VI_1 {
 state MASTER //主服务器
 interface ens33
 virtual_router_id 51
 mcast_src_ip 192.168.131.132
 priority 150
 advert_int 1
 authentication {
        auth_type PASS
        auth_pass 123456
 }
 virtual_ipaddress {
        192.168.131.150
 }
}
virtual_server 192.168.131.150 3306 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 60
    protocol TCP
    real_server 192.168.131.131 3306 {
        weight 3
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 3306
        }
    }
    real_server 192.168.131.132 3306 {
        weight 3
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 3306
        }
    }
}

备服务器(192.168.131.131)的keepalived.conf配置:

global_defs {
 notification_email {
      //可以添加邮件提醒
 }
 notification_email_from root@localhost
 smtp_server 127.0.0.1
 smtp_connect_timeout 30
 router_id LVS_DEVEL
}
vrrp_instance VI_1 {
 state BACKUP //从服务器
 interface ens33
 virtual_router_id 51
 mcast_src_ip 192.168.131.131
 priority 100
 advert_int 1
 authentication {
        auth_type PASS
        auth_pass 123456
 }
 virtual_ipaddress {
        192.168.131.150
 }
}
virtual_server 192.168.131.150 3306 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 60
    protocol TCP
    real_server 192.168.131.131 3306 {
        weight 3
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 3306
        }
    }
    real_server 192.168.131.132 3306 {
        weight 3
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 3306
        }
    }
}
// 运行keepalived(运行keepalived先确保mysql集群是开启状态)
sudo /etc/init.d/keepalived start(start开启,stop停止,reload重启)
// 可以查看keepalived的运行日志 
sudo tail /var/log/syslog

安装 ipvsadm

sudo apt-get install ipvsadm
// IPVSADM验证
sudo ipvsadm -Ln

若以上步骤没有出错,应出现下方输出:

这里写图片描述

测试

1、在192.168.131.132通过vip登录mysql

// 通过虚拟ip可以随机选择131或132主机进行数据库连接(负载均衡)
mysql -h 192.168.131.150 -u root -p

可能出现如下情况

这里写图片描述

或者
这里写图片描述

解决方法 -> 解决mysql远程连接Host ‘*’ is not allowed to connect to this MySQL server

2、成功登录后(默认mysql集群已经成功)

// 退出mysql
quit
// 关闭192.168.131.132(主)的mysql服务
pkill ndbd 
pkill mysql
// 在客户机尝试进入mysql(主从备份,客户机需要有mysql服务)
mysql -h 192.168.131.150 -u root -p 

在客户机中对数据库进行修改后,正常情况下可以看到在192.168.131.132查看数据已经同步。
则代表实现了keepalived的高可用。

猜你喜欢

转载自blog.csdn.net/a807557328/article/details/78286337