千家信息网

mycat 读写分离 简单分库

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,一,环境配置实验用的是center7 jdk1.8(center7自带默认jdk,没jdk的需要安装)192.168.0.19(mycat)192.168.0.14(master主)192.168.0
千家信息网最后更新 2025年02月02日mycat 读写分离 简单分库

一,环境配置

实验用的是center7 jdk1.8(center7自带默认jdk,没jdk的需要安装)
192.168.0.19(mycat)
192.168.0.14(master主)
192.168.0.13(slave从)
1.先去官网下载mycat
http://www.mycat.io/

2.把下载的mycat文件解压到 /usr/local/
3.配置环境
把mysql的主从配置好,这里就不说明了,配置好创建一个名为k1的库,建好了去从库上验证一下。

二,配置读写分离

1.vim /usr/local/mycat/conf/server.xml ##配置mycat的账号及权限

123456
k1

#表示创建个root账号,密码123456,授权k1(mycat的逻辑库)的完全权限
2.vim /usr/local/mycat/conf/schema.xml ##配置mycat的逻辑库

                                        show slave status                                                                   

3.启动mycat 并测试
/usr/local/mycat/bin/mycat start

三.分片数据库(基于表分)

1.在增加一个数据库192.168.0.16,
在数据库里创建k1库,b2表,配置修改如下

                
select user()
select user() select user()

结构图

用户请求过来到达mycat,mycat根据以上配置判断,如果是fenpian1分片组就转发给真实服务器组shitizu1处理,读交于slave处理,写交于master处理。如果是fenpian2分片组,就转发给真实服务器组shitizu2来处理,读写都交于192.168.0.16处理。
这样前端查询k1这个逻辑库得时候,能获取的b1,b2两个表的完整数据,但其实每个真实数据库组,只存储了只一张表,完整的数据是由mycat读取后端的两个真实服务器组组织起来的。

0