数据库中间件Mycat之主从读写分离

时间:2022-08-11 04:10:59

1.开源中间件Mycat

http://mycat.org.cn/

2.架构图

数据库中间件Mycat之主从读写分离

3.Mycat安装

先决条件:jdk1.7以上版本

linux下直接解压开即可

tar -zxvf Mycat-server-1.5-RELEASE-20160301083012-linux.tar.gz

4.配置

先决条件 :mysql主从复制【可以参考我的上一篇文章:http://blog.csdn.net/caicongyang/article/details/50813531

以下配置文件在mycat解压完后的conf目录下;

server.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
<!--mycat 用户-->
<user name="root">
<property name="password">root</property>
<!--mycat 数据库名称(相当于proxy的功能)-->
<property name="schemas">TESTDB</property>
</user>

<quarantine>
<!--mycat白名单-->
<whitehost>
<host host="192.168.150.100" user="root"/>
</whitehost>
<blacklist check="false"></blacklist>
</quarantine>
</mycat:server>

schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<!-- TESTDB为mycat的数据库名称即代理库-->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<!-- mvc为真实的数据库名称-->
<dataNode name="dn1" dataHost="localhost1" database="mvc" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="2" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<!-- 心跳校验 自动切换 -->
<heartbeat>show slave status </heartbeat>
<!-- 写 此处user 为mysql用户-->
<writeHost host="hostM1" url="192.168.150.135:3306" user="root" password="root" />
<!-- 读 此处user 为mysql用户-->
<readHost host="hostS1" url="192.168.150.136:3306" user="root" password="root" />
</dataHost>
</mycat:schema>


5.启动

#cd /usr/local/mycat/bin
#./mycat start
或者前台启动
#./mycat console
看到以下日志表示启动成功
Running Mycat-server...
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | log4j 2016-03-08 13:23:49 [./conf/log4j.xml] load completed.
jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log

6.测试

连接测试 使用Navicat客户端链接mycat ,默认端口号是8066;主要此处的用户名为server.xml中配置的用户名密码,链接成功可以看到我们刚配置的TESTDB代理库 同理在在java 项目中配置的同样是mycat代理库和mycat用户名密码
读写分离测试
将两台主从库的同步先断开,删除从库的部分数据,查看页面读取到的信息是否为从库的内容!


更多精彩内容请继续关注我的博客http://blog.csdn.net/caicongyang

记录与分享,你我共成长 -from caicongyang
如果你觉得本文对你有帮助,可以扫描下面的微信二维码,请我喝杯水咯!数据库中间件Mycat之主从读写分离