本文主要基于 MyCAT 1.6.5 正式版
1. 依赖工具
2. 源码拉取
3. 数据库配置
4. MyCat 配置
5. MyCAT 启动
6. MyCAT 测试
7. 交流
RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
您对于源码的疑问每条留言都将得到认真回复甚至不知道如何读源码也可以请教噢
新的源码解析文章实时收到通知每周更新一篇左右
认真的源码交流微信群
1. 依赖工具
- Maven
- Git
- JDK
- MySQL
- IntelliJ IDEA
2. 源码拉取
从官方仓库 https://github.com/MyCATApache/Mycat-Server Fork 出属于自己的仓库为什么要 Fork ? 既然开始阅读调试源码, 我们可能会写一些注释, 有了自己的仓库, 可以进行自由的提交
使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码拉取完成后, Maven 会下载依赖包, 可能会花费一些时间, 耐心等待下
3. 数据库配置
我们要搭建的是非分片表的调试环境, 需要创建一个数据库和表:
创建数据库: db01
创建数据库表: 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 系统配置
- 0
- 1
- 0
- 0
- 2
- 0
- 0
- 1
- 64k
- 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 目录如下:
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. 交流
来源: http://www.suo.im/zt7Vk