MyCat使用指南
一、概述
mycat是一个数据库中间件。基于阿里开源的Cobar演变而来。
mycat的主要原理是拦截SQL语句,并将不同SQL语句做不同处理。例如将SELECT语句转发到读主机来实现读写分离。
二、下载安装
wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz
#下载1.6.7.6版本
http://www.mycat.org.cn/
#官方网址三、安装与依赖
3.1 需要JDK环境
3.2 mycat解压即用
四、目录结构
- 主程序目录:
/mycat/bin 配置文件schema.xml:
/mycat/conf/schema.xml- 用于配置逻辑库、逻辑表相关信息
配置文件server.xml:
/mycat/conf/server.xml- 用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等
配置文件rule.xml:
/mycat/conf/rule.xml- 如果使用了水平切分,就需要使用该文件配置切分规则
- 日志文件log4j2.xml:
/mycat/conf/log4j2.xml
五、读写分离
5.1 mycat可以在已配置好主从(或双主多从)的mysql基础上,通过将读请求转发到读主机、将写请求转发到写主机的方式来实现读写分离。
5.2 有4种转发方式:
- 0:不做读写分离,所有操作发送到写主机(write host)。
- 1:所有读操作发送到读主机和备用写主机(stand by writeHost)。
- 2:所有操作随机转发到读和写主机。
- 3:所有操作发送到读主机(所有写主机都不接受读操作)。
5.3 读写分离配置
逻辑库、表在schema.xml文件中配置,此配置文件是xml格式,下面解释不同标签的作用。
<?xml version="1.0">
#xml声明,固定格式。<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
#引入了schema.dtd用以验证xml格式是否符合期望的规范。<mycat:schema xmlns:mycat="http://io.mycat/"></mycat:schema>
#所有的配置子标签都在这个大标签内部
#xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="TESTDB" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="mysql-master-01:3306" user="root" password="12345">
<readHost host="hostS1" url="mysql-slave-01:3306" user="root" password="12345" />
</writeHost>
<writeHost host="hostM2" url="mysql-master-02:3306" user="root" password="12345">
<readHost host="hostS2" url="mysql-slave-02:3306" user="root" password="12345" />
</writeHost>
</dataHost>
</mycat:schema>