0%

使用HAproxy-Keepalived-MHA搭建高可以用Mysql服务集群

环境

Mysql高可用集群

  • Mysql

    • 使用Mysql5.7.*版本,在Slave和Master集群中安装
  • HAproxy

    • 使用HAproxy1.8版本,在CentOS环境中安装,使用单独服务器,以提高性能
  • Keepalived

    • 使用Keepalived1.3.5版本,在Master和Backup服务器上安装,使用漂移VIP

-MHA

  • 使用mha-mangaer-0.55版本,Manager单独安装服务器,Node安装在Master和Back中

操作

安装配置

  1. 安装Mysql数据库

    • 分别在slave01-03服务器和master\backup服务器中安装mysql57-community-server
    • 安装步骤:导入mysql repo源,使用yum-config-manager禁用mysql80源,启用mysql57源,然后使用yum install mysql-community-server安装
  2. 配置数据库主从复制

    master-mysql-configure

  3. 安装配置keepalived

    • 分别在master和backup中安装keepalived,设置漂移VIP地址为192.168.0.110,master和backup的级别、路由id、认证密码相同,state都设置为BACKUP,启用非抢夺模式
    • 首先启动master服务器中的keepalived,再启动backup
    • 参考文章:
      1. Mysql高可用架构之keepalived and MHA

    keepalived configure

  4. 安装配置MHA

    • 分别在master,backup和slave中安装MHA-Node
    • 在mha服务器中安装MHA-Manager,设置配置文件,修改故障转移脚本
    • 在启用mha之前,使用命令masterha_check_ssh --conf=/etc/masterha/app1.cnf检查ssh信任,使用命令masterha_check_repl --conf=/etc/masterha/app1.cnf检查mysql的主从同步
    • mha启用后,使用命令masterha_check_status --conf=/etc/masterha/app1.cnf检查mha的状态
    • 以daemon的方式启动MHA,使用命令行nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/app1.log 2>&1 &

    mha-manager-configure

  5. 安装配置haproxy

    • 在haproxy服务器上安装haproxy,修改配置文件,启用状态检测
    • 通过端口分离读写,3306读,3307
    • 在启用haproxy之前,可以使用命令haproxy -f /etc/haproxy/haproxy.cfg检查haproxy的配置是否正确
    • 参考文章:
      1. HAProxy基础学习笔记

    haproxy-configure

启用

  1. 启用Mysql数据库,检查主从同步复制
  2. 启用master中的keepalived,启用backup中的keepalived
  3. 启用haproxy,检查haproxy的统计信息
  4. 启用MHA-Manager,检查其状态

读写简单测试

  1. 在本地通过client连接Mysql数据库,使用3307段口号

    • mysql -u root -p -h haproxy -P 3307
  2. 查看Mysql的server_id

    • show global variables like '%server_id%';
  3. 在本地通过client连接Mysql数据库,使用3306段口号

    • mysql -u root -p -h haproxy -P 3307
  4. 查看Mysql的server_id

    • 多次执行show global variables like '%server_id%';查看每次获取的server-id

    rade-show-serverid