数据库中间件 MyCAT 源码分析 —— 调试环境搭建
admin
2023-05-17 06:42:33
0

数据库中间件 MyCAT 源码分析 —— 调试环境搭建

关注**微信公众号:【芋艿的后端小屋】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表

  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址

  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢

  4. 新的源码解析文章实时收到通知。每周更新一篇左右


  • 1. 依赖工具

  • 2. 源码拉取

  • 3. 数据库配置

  • 4. MyCat 配置

  • 5. MyCAT 启动

  • 6. MyCAT 测试

  • 7. 交流

1. 依赖工具

  • Maven

  • Git

  • JDK

  • MySQL

  • IntelliJ IDEA

2. 源码拉取

从官方仓库 https://github.com/MyCATApache/Mycat-Server Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。

使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码。拉取完成后,Maven 会下载依赖包,可能会花费一些时间,耐心等待下。

3. 数据库配置

我们要搭建的是非分片表的调试环境,需要创建一个数据库和表:

  1. 创建数据库:db01 。

  2. 创建数据库表:travelrecord 。


CREATE TABLE `travelrecord` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET latin1 DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin


4. MyCAT 配置

为了避免对实现源码产生影响,我们选择对 test 目录做变更。

1、在 resources 目录下新建文件夹 backups ,将原 resources 下的所有文件移到 backups 下,这样我们的环境就干干净了。
2、在 resources 目录下新建 schema.xml 文件,配置 MyCAT 的逻辑库、表、数据节点、数据源。


				select user()		 			


3、在 resources 目录下新建 server.xml 文件,配置 MyCAT 系统配置。


	10  0  		2		0		0		164k		1k		0		384m		false				123456		dbtest	


5. MyCAT 启动

1、在 java 目录下新建 debugger 包,和原先已存在的包做区分。
2、在 debbuger 包下新建 MycatStartupTest.java :


package debugger;import io.mycat.MycatStartup;/*** {@link io.mycat.MycatStartup}测试** Created by yunai on 2017/5/22.*/public class MycatStartupTest {public static void main(String[] args) {MycatStartup.main(args);}}


3、运行 MycatStartupTest.java ,当看到输出日志 MyCAT Server startup successfully. see logs in logs/mycat.log 即为启动成功。

截止目前,test 目录如下:

数据库中间件 MyCAT 源码分析 —— 调试环境搭建

6. MyCAT 测试

调试环境已经搭建完成,我们看看是否正确。

使用 MySQL 客户端连接 MyCAT :

  • HOST :127.0.0.1

  • PORT :8066

  • USERNAME :root

  • PASSWORD :123456


mysql> insert into travelrecord(name) values ('haha');Query OK, 1 rows affected (0.01 sec)mysql> select * from travelrecord;+--------------------+------+| id                 | name |+--------------------+------+| 866707181398003712 | haha |+--------------------+------+1 rows in set (0.05 sec)


成功。

7. 交流

感谢阅读、收藏、关注。
知其然知其所以然。学习 MyCAT 会是一段很愉快的旅程。如果有你的交流,相信会更加愉快。欢迎添加微信:wangwenbin-server 进行探讨。

相关内容

热门资讯

“你头发都白了”,同守广西边防... “你头发都白了,模样还是没变,就是没有年轻时候那么帅了。”
小米手机再度涨价:旗舰最高上涨... 8月2日,小米商城价格更新,多款主力机型上调300元至500元不等。其中,REDMI Turbo 5...
“真实社交”售卖“优先访问权”... 据了解,购买这项服务的企业能够直接接入“真实社交”数据源,辅以人工智能技术解读信息,进而提前把握市场...
原创 狂... 英伟达正式官宣与 Safe Superintelligence(SSI)达成长期战略合作,总投资规模...
马斯克最新预言来了,钱要没用了... “以法莲是商人,手里有诡诈的天平,爱行欺骗!”——圣经 据红星新闻报道,本月,埃隆·马斯克在接受专...
遭欧盟22国“围攻”,西班牙怒... 西班牙首相桑切斯与22个欧盟成员国领导人激烈交锋后,由轮值主席国爱尔兰正式召集,欧盟将于本周二(8月...
创维电视42d9指示灯不亮 1、可能为电源插座插头的故障。2、可能为电源连接线的故障。3、可能为电视内部开关电源电路出了故障。4...
电视不通电指示灯不亮是什么原因 因为电源适配器发生了故障,就会导致电视不通电指示灯不亮;当然了,电视机也会因为开机的电源电路发生异常...
天然气灶电子打火一直不停 天然气灶电子打火一直不停发生这个现象大概率是因为打火装置发生了故障。天然气灶是通过高压电子发动打火装...
天然气打火灶打不着火 1、可能是电池没有电或者是天然气没有气了。2、天然气的管道出现了堵塞,就会导致天然气打火灶打不着火的...