mycat配置分库分表+读写分离

◇◆丶佛笑我妖孽 提交于 2019-12-22 17:23:54

实验环境

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查询出来的数据有四条数据,验证完毕。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!