mycat配置分库分表+读写分离
程序员文章站
2022-05-08 23:09:20
...
实验环境
mycat1.6
mysql5.6
第一步:新建数据库和表
mysql5.6主1号和从1号
mysql5.6主2号和从2号
配置主从1号和2号参考链接:
https://blog.csdn.net/u010772230/article/details/103642811
在主1号中创建数据库db4并新建表t_user
在主2号中创建数据库db5新建表t_user
CREATE TABLE `t_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NULL,
PRIMARY KEY (`id`)
);
第二步:配置mycat的server.xml
配置mycat的逻辑数据库名和账号密码
第三步:配置mycat的schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="MyCatDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="t_user" primaryKey="ID" dataNode="dn4,dn5" autoIncrement="false" rule="mod-long" />
</schema>
<dataNode name="dn4" dataHost="localhost1" database="db4" />
<dataNode name="dn5" dataHost="localhost2" database="db5" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="db4主数据库的地址" user="root"
password="root">
<readHost host="hostS2" url="db4从数据库的地址"" user="root" password="root" />
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="db5主数据库的地址" user="root"
password="root">
<readHost host="hostS2" url="db5从数据库的地址" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>
第四步:启动mycat验证
启动mycat
用navicate连接mycat
然后往mycat的逻辑库MyCatDB的t_user表插入两条记录
INSERT INTO `t_user` (`id`, `name`) VALUES (1, "ddd");
INSERT INTO `t_user` (`id`, `name`) VALUES (2, "ddd");
在单独,在db4的从库往t_user表插入一条数据
INSERT INTO `t_user` (`id`, `name`) VALUES (3, "db4从库数据");
在单独,在db5的从库往t_user表插入一条数据
INSERT INTO `t_user` (`id`, `name`) VALUES (4, "db5从库数据");
此时,db4主库一条数据,db4从库2条数据
db5主库一条数据,db5从库2条数据
通过mycat查询出来的数据有四条数据,验证完毕。
上一篇: Mycat-server is not running
下一篇: mycat的配置