Mycat入门和读写分离实战

Beth ·
更新时间:2024-11-10
· 689 次阅读

1.什么是MyCat

        MyCAT是一款由阿里Cobar演变而来的用于支持数据库,读写分离、分表分库的分布式中间件。MyCAT支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库。
        MyCAT原理MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。

2.基于MyCat实现读写分离

       读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。主数据库进行写操作后,数据及时同步到所读的数据库,尽可能保证读、写数据库的数据一致,比如MySQL的主从复制、Oracle的data guard、SQL Server的复制订阅等。

3.安装Mycat

安装前准备
三台服务器(关闭防火墙)
mycat安装服务器:192.168.223.140
主数据库:192.168.223.141
从数据库:192.168.223.142
读写分离前提是:实现主从复制,主从复制请参考《主从复制原理》

1、上传安装Mycat-server-1.6.5-release-20180122220033-linux.tar 2、解压安装包tar –zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar 3、配置schema.xml 和server.xml 4、客户端连接端口号: 8066

配置文件介绍:
S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡; 2,所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡; --> select user()

建议:mycat逻辑库名称和mysql数据库名称一样,否则可能会存在连接不上问题
server.xml配置

123456 seckill <!--
--> 123456 seckill true

root用户可以读写,user用户只可以读

验证:root和user的权限,用user用户无法写入,用root用户可读可写就不截图了。
原创文章 124获赞 81访问量 9万+ 关注 私信 展开阅读全文
作者:机智的豆子



读写分离 实战 mycat

需要 登录 后方可回复, 如果你还没有账号请 注册新账号