springboot整合Mycat实现读写分离

 

环境搭建

以windows版本的mycat演示

第一步:下载Mycat

下载mycat地址: 
https://github.com/MyCATApache/Mycat-download/tree/master/1.4-RELEASE 

下载了好久下载的不能用,分享出来一份我之前收藏的压缩包

链接:https://pan.baidu.com/s/1B_pYJA1vSqLKlrBunTUBUw 
提取码:u6g9 
复制这段内容后打开百度网盘手机App,操作更方便哦

 

解压后配置环境变量: 
如图:

MYCAT_HOME配置: 

MYCAT_HOME配置

PATH配置

第二步:解压

下载成功后,解压到本地,目录结构如下:

第三步:配置

修改配置文件(mycat–>conf): 
wrapper.conf:这里改成你本地安装jdk的路径。

 

重要的配置文件server.xml和schema.xml

 

server.xml:登录mycat的用户名和密码就是test,数据库名就是TESTDB

 

schema.xml:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<!-- auto sharding by id (long) -->
		<table name="test" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
	</schema>
		<!-- global table is auto cloned to all defined data nodes ,so can join
			with any table whose sharding node is in the same data node -->
	<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
		/> -->
	<dataNode name="dn1" dataHost="localhost1" database="db1" />
	<dataNode name="dn2" dataHost="localhost1" database="db2" />
	<dataNode name="dn3" dataHost="localhost1" database="db3" />
	
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="localhost:3306" user="root"
				   password="root">
			
		</writeHost>	
	</dataHost>
</mycat:schema>

 

schema的配置要与你本地安装的mysql有关: 
“2”是你本地mysql的分库名称, 
“3”是你本地mysql的账号密码, 
“1”是mycat和本地mysql表关联配置,table是表名,dataNode就是哪些分库里有test表。我三个分库都有test这张表,所以都配置了。rule是test这张表的执行规则,规则名字是:auto-sharding-long,规则设置在rule.xml里,我们可以去看看:

 

rule.xml

这里写图片描述

 

搜索标注的: 

这里写图片描述

 

第四步:启动

 

 如果可以看到如下信息,说明启动成功。

 

如果报错的话,可以在如下目录查看日志信息。

 

第五步:测试

启动好了后,接下来使用navicat连接mycat,新建一个mysql连接,如下图:连接成功,其中 8066端口是mycat的默认端口

 

打开刚刚新建的mysql连接,可以看到有一个TESTDB数据库:

这些表信息,其实都是在schema.xml文件中配置的。

schema.xml文件中具体配置的意义请参考Mycat权威指南一书。

 

本地mysql数据库新建db1、db2、db3三个数据库

然后在db1、db2、db3中新建test表,并且 分别存入如下数据:

建表SQL:

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `is_del` int(2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

    

 

最后再在TESTDB中点开test,可以看到如下信息:

 

 到现在就mycat就安装好了。

 

可参考其他资料:

https://blog.csdn.net/Lh19931122/article/details/78043257

https://www.cnblogs.com/zuidongfeng/p/7793098.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值