MyCat 实现 MySQL 主从读写分离

目录

一、MySQL读写分离概述

1.1 工作原理

1.2 为什么要读写分离

1.3 什么是MyCat

二、MyCat安装与配置

2.1 解压

2.2 创建用户并修改权限

2.3 Java环境要求

2.4 MyCat启动和配置

三、配置数据库

3.1 配置主库(master)

3.2 配置两个从库(slave)

3.3 在客户端服务器上

四、总结


一、MySQL读写分离概述

1.1 工作原理

主库负责写操作:INSERT、UPDATE、DELETE

从库负责读操作:SELECT

主从复制保证从库数据与主库同步

数据内部交换过程:主库写入 → 二进制日志 → 从库同步

1.2 为什么要读写分离

1. 单台服务器性能瓶颈,需分担负载

2. 主从分工,缓解锁争用(X锁和S锁)

3. 从库可使用 MyISAM,提高查询性能

4. 增加冗余,提高可用性

1.3 什么是MyCat

开源企业级数据库中间件

支持事务、ACID

替代 MySQL 集群或 Oracle 集群

融合内存缓存、NoSQL、大数据技术(HDFS)

可视为企业级数据库中间件,实现分库分表、读写分离

二、MyCat安装与配置

2.1 解压

将安装包解压到/opt目录下

2.2 创建用户并修改权限

1、创建mycat用户,并设置密码123456

2、修改mycat目录权限

2.3 Java环境要求

要求JDK1.7及以上

1、解压到/opt目录下

2、设置环境变量

3、查看版本

2.4 MyCat启动和配置

1、配置环境变量

2、配置集群

master:10.8.0.110 主节点 负责写

slave1:10.8.0.100 从节点1 负责读

slave2:10.8.0.103 从节点2 负责读

3、配置server文件

cp /opt/mycat/conf/server.xml /opt/mycat/conf/server.xml_bak备份配置文件

vim /opt/mycat/conf/server.xml修改配置文件

4、配置schema文件

cp /opt/mycat/conf/server.xml /opt/mycat/conf/server.xml_bak备份配置文件

vim /opt/mycat/conf/server.xml

5、启动MyCat并检查

三、配置数据库

3.1 配置主库(master)

1、创建mzy数据库

2、创建表格插入数据

3、授权

4、插入数据

3.2 配置两个从库(slave)

1、停止同步并使用mzy数据库

2、授权

3、插入数据

slave1:

slave2:

3.3 在客户端服务器上

1、查看表格信息

2、插入数据

3、查看主服务器

4、两个从库打开主从同步后查看mycat

四、总结

使用MyCat实现MySQL主从读写分离的搭建过程,核心是通过配置MyCat中间件,将写操作路由到主库(master)、读操作负载均衡到两个从库(slave1/slave2),从而缓解单库性能压力、减少锁竞争并提升系统可用性;实践中需注意主从数据同步的开启、MyCat逻辑库与物理库的映射,以及各节点权限的正确授予,最终验证了读写分离效果——从不同从库查询到各自插入的标识数据,而主库写入的数据在同步后对所有节点可见。