Mycat实现读写分离
Mycat支持MySQL主从复制状态绑定的读写分离机制。这里实现的也是基于MySQL主从复制的读写分离。
MySQL主从复制配置
首先要配置MySQL的主从复制,这里配置的是一主一次从。可以参考下面的文章。
https://blog.csdn.net/wsb_2526/article/details/134367551
MyCat配置
schema.xml文件配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--mycat逻辑库的名名称 TESTDB -->
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1">
</schema>
<!--数据节点:dataHost要和下面的对应,datatbase是数据库 -->
<dataNode name="dn225" dataHost="db225" database="TESTDB" />
<!--物理主机 -->
<dataHost name="db225" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- 写主机-->
<writeHost host="M1" url="192.168.200.225:3306" user="root" password="root">
<!-- 读主机-->
<readHost host = "M2" url = "192.168.200.215:3306" user="root" password = "root"/>
</writeHost>
</dataHost>
</mycat:schema>
验证
登录mycat控制台
mysql -uroot -proot -P 8066 -h 192.168.200.220
读主机和写主机中的数据分别如下:
查询id为7的数据,显示的是192.168.200.215主机中的数据,和配置的一致;
插入一条id为9的数据;
可以看到插入到了写主机中,说明我们的配置是有效的。
参考
Mycat入门配置之读写分离配置
MyCat官网