暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

开源数据库中间件MyCat实现数据库读写分离、分表分库指南

数据和云 2019-04-03
161

前言


系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。MyCat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会MyCat的使用。


安装


MyCat官网:http://www.mycat.io/
可以了解下MyCat的背景和应用情况,这样使用起来比较有信心。


MyCat下载地址:http://dl.mycat.io/
官网有个文档,属于详细的介绍,初次入门,看起来比较花时间。


下载:
建议大家选择 1.6-RELEASE 版本,比较稳定。


安装:
根据不同的系统选择不同的版本。包括Linux、Windows、Mac,作者考虑还是非常周全的,当然,也有源码版的。(源码版的下载后,只要配置正确,就可以正常运行调试。)



MyCat的安装其实只要解压下载的目录就可以了。


安装完成后,目录如下:

目录说明
binMyCat命令,启动、重启、停止等
catletcatlet为MyCat的一个扩展功能
confMyCat 配置信息,重点关注
libMyCat引用的jar包,MyCat是Java开发的
logs日志文件,包括MyCat启动的日志和运行的日志。


配置


MyCat的配置文件都在conf目录里面,这里介绍几个常用的文件:


文件说明
server.xmlMyCat的配置文件,设置账号、参数等
schema.xmlMyCat对应的物理数据库和数据库表的配置
rule.xmlMyCat分片(分库分表)规则


MyCat的架构很好理解,MyCat是代理,MyCat后面就是物理数据库。和Web服务器的Nginx类似。对于使用者来说,访问的都是MyCat,不会接触到后端的数据库。


我们现在做一个主从、读写分离,简单分表的示例。结构如下图:



服务器IP说明
MyCat192.168.0.2MyCat服务器,连接数据库时,连接此服务器
database1192.168.0.3物理数据库1,真正存储数据的数据库
database2192.168.0.4物理数据库2,真正存储数据的数据库


MyCat作为主数据库中间件,与代码是弱关联的,所以代码是不用修改的,使用MyCat后,连接数据库是不变的,默认端口是8066。连接方式和普通数据库一样,如:jdbc:mysql://192.168.0.2:8066/


server.xml

<user name="test">
        <property name="password">test</property>  
        <property name="schemas">lunch</property>  
        <property name="readOnly">false</property>  

        <!-- 表级 DML 权限设置 -->
        <!--        
        <privileges check="false">
            <schema name="TESTDB" dml="0110" >
                <table name="tb01" dml="0000"></table>
                <table name="tb02" dml="1111"></table>
            </schema>
        </privileges>       
         -->

    </user>

(左右滑动,查看完整代码,下同)


重点关注下面这段,其他默认即可。

参数说明
--user用户配置节点
--name登录的用户名,也就是连接MyCat的用户名
--password登录的密码,也就是连接MyCat的密码
--schemas数据库名,这里会和schema.xml中的配置关联,多个用逗号分开,例如需要这个用户需要管理两个数据库db1,db2,则配置db1,dbs
--privileges配置用户针对表的增删改查的权限,具体见文档吧


这里配置了一个账号test,密码也是test,针对数据库lunch,读写权限都有,没有针对表做任何特殊的权限。


schema.xml


schema.xml是最主要的配置项,首先看我的配置文件。


文章转载自数据和云,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论