IT科技类资讯

MySQL 主从集群 + mycat 双节点 + Keepalived 读写分离高可用方案

字号+作者:益华科技来源:人工智能2025-11-03 16:47:21我要评论(0)

今天分享一下读写分离使用 MyCAT 版本来实现 MySQL 主从集群与 MyCAT 双节点部署,并结合Keepalived实现高可用的完整解决方案。一、架构设计1. 场景说明在大型业务系统中,数据库

今天分享一下读写分离使用 MyCAT 版本来实现 MySQL 主从集群与 MyCAT 双节点部署,从集并结合 Keepalived 实现高可用的双节完整解决方案。

一、点Kd读架构设计

1. 场景说明

在大型业务系统中,写分数据库压力大,离高为了解决单点瓶颈和读写分离问题,可用采用 MySQL 主从集群和 MyCAT 做数据中间层。从集为保证 MyCAT 层面的双节高可用,部署两个 MyCAT 节点,源码下载点Kd读利用 Keepalived 做 VIP 浮动 IP,写分保障服务不中断。离高

架构如下:

二、可用部署环境规划

主机 IP

安装服务

角色

10.0.0.41

MySQL 主库 + MyCAT + Keepalived

主节点(MASTER)

10.0.0.42

MySQL 从库 + MyCAT + Keepalived

备节点(BACKUP)

VIP

10.0.0.100

客户端访问入口

mysql集群已经部署完成。从集

三、双节MyCAT 双节点部署

1. 安装 MyCAT

两个节点都需要部署mycat,点Kd读部署过程一样。

mycat官网:https://github.com/MyCATApache/Mycat-Server

(1) 安装java

复制yum install -y java1.

(2) 下载并解压 MyCAT

复制# 下载mycat wget https://github.com/MyCATApache/Mycat-Server/releases/download/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz tar -xvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz # 解压好的文件迁移到/usr/local mv mycat /usr/local/mycat1.2.3.4.5.6.

(3) 创建 MyCAT 用户

复制useradd mycat chown -R mycat:mycat /usr/local/mycat1.2.

(4) 配置环境变量

复制vi /etc/profile # 在尾部添加 export PATH=/usr/local/mycat/bin:$PATH # 立即生效 source /etc/profile1.2.3.4.5.6. 2. 配置 MyCAT

配置文件路径:/usr/local/mycat/conf/涉及 3 个主要文件:

server.xml — 配置 MyCAT 相关服务schema.xml — 配置数据库连接、读写分离rule.xml — 配置分库分表规则(此方案中不涉及)

(1) server.xml 配置

路径:/usr/local/mycat/conf/server.xml

复制<?xml versinotallow="1.0" encoding="UTF-8"?> <mycat:server xmlns:mycat="http://mycat.io/"> <user name="root"> <property name="password">123456</property> <property name="schemas">testdb</property> </user> </mycat:server>1.2.3.4.5.6.7.

客户端通过 MyCAT 连接时,b2b供应网使用 root/123456 登录。

(2) schema.xml 配置

路径:/usr/local/mycat/conf/schema.xml

复制<?xml versinotallow="1.0" encoding="UTF-8"?> <mycat:schema xmlns:mycat="http://mycat.io/"> <!-- 定义逻辑库 --> <schema name="testdb" checkSQLschema="false" sqlMaxLimit="100"> <table name="*" dataNode="dn1" /> </schema> <!-- 数据节点配置 --> <dataNode name="dn1" dataHost="localhost" database="testdb" /> <!-- 主从数据库节点配置 --> <dataHost name="localhost" maxCnotallow="1000" minCnotallow="10" balance="1" writeType="0" dbType="mysql" dbDriver="native"> <heartbeat>select 1</heartbeat> <!-- 主库 --> <writeHost host="hostM1" url="10.0.0.41:3306" user="root" password="123456"> <!-- 从库 --> <readHost host="hostS1" url="10.0.0.42:3306" user="root" password="123456" /> </writeHost> </dataHost> </mycat:schema>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.

关键配置说明

配置项

说明

balance="1"

配置读写分离,读操作自动分发到从库

writeType="0"

只允许向主库写入数据

writeHost

主库配置

readHost

从库配置

(3) 启动 MyCAT

复制cd /usr/local/mycat/bin ./mycat start1.2.

(4) 查看 MyCAT 日志

复制tail -f /usr/local/mycat/logs/wrapper.log1.

(5) 查看状态

复制mycat status1.

两个节点配置完mycat后,接下来配置keepalived。

四、配置 Keepalived 高可用

1. 安装 Keepalived 复制yum install keepalived -y1. 2. 配置 Keepalived

(1) 主节点 /etc/keepalived/keepalived.conf

复制global_defs { router_id MyCAT_1 } vrrp_script chk_mycat { script "/usr/local/mycat/bin/check_mycat.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface ens33 # 确保网卡名正确 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.100 } track_script { chk_mycat } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.

(2) 备节点 /etc/keepalived/keepalived.conf

复制global_defs { router_id MyCAT_2 } vrrp_script chk_mycat { script "/usr/local/mycat/bin/check_mycat.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.100 } track_script { chk_mycat } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.

(3) 健康检查脚本

复制vi /usr/local/mycat/bin/check_mycat.sh1. 复制#!/bin/bash MYCAT_PORT=8066 if ! netstat -ntlp | grep $MYCAT_PORT > /dev/null then echo "MyCAT is down, stopping keepalived" systemctl stop keepalived fi1.2.3.4.5.6.7.8.9.

(4) 授权执行权限

复制chmod +x /usr/local/mycat/bin/check_mycat.sh1. 3. 启动 Keepalived 服务 复制# 启动keepalived并设置开机自启动 systemctl enable --now keepalived1.2.

五、客户端访问

客户端或应用通过 VIP(10.0.0.100)和端口 8066 访问:

复制mysql -h 10.0.0.100 -P 8066 -uroot -p1234561.

高可用实现:

默认情况下,VIP 在主节点上,MyCAT 监听 8066 端口如果主节点的 MyCAT 异常,亿华云计算VIP 会自动漂移到备节点

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 电脑操作指南(教您快速、简单地通过电脑修改WiFi密码)

    电脑操作指南(教您快速、简单地通过电脑修改WiFi密码)

    2025-11-03 15:49

  • 戴尔7548s在游戏中的表现如何?(性能、画质、续航等方面的综合评价)

    戴尔7548s在游戏中的表现如何?(性能、画质、续航等方面的综合评价)

    2025-11-03 15:47

  • 奥睿科固态硬盘支架(高品质、高性能,助您轻松管理数据)

    奥睿科固态硬盘支架(高品质、高性能,助您轻松管理数据)

    2025-11-03 15:29

  • 完全指南(掌握BIOS设置的关键技巧,优化电脑性能与稳定性)

    完全指南(掌握BIOS设置的关键技巧,优化电脑性能与稳定性)

    2025-11-03 14:20

网友点评