赞
踩
本文介绍基于windows系统
tar包:dl.mycat.org.cn/2.0/install…
jar包: dl.mycat.org.cn/2.0/
选择一个自己喜欢的版本,将jar包放入解压的tar包lib文件夹
2.1 创建用户 ,用户名为mycat,密码为123456,赋权限
- CREATE USER 'mycat'@'%' IDENTIFIED BY '123456';
- --必須要複的權限 mysql8才有的
- GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';
- ---视情况赋值权限
- GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;
- flush privileges;
- 复制代码
2.2 配置文件修改
prototypeDs.datasource.json
- {
- "dbType":"mysql",
- "idleTimeout":60000,
- "initSqls":[],
- "initSqlsGetConnection":true,
- "instanceType":"READ_WRITE",
- "maxCon":1000,
- "maxConnectTimeout":3000,
- "maxRetryCount":5,
- "minCon":1,
- "name":"prototypeDs",
- "password":"123456",//密码
- "type":"JDBC",
- //链接
- "url":"jdbc:mysql://localhost:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
- "user":"mycat", //用户名
- "weight":0
- }
- 复制代码
- cd mycat/bin
-
- #PowerShell
-
- ./mycat install
- ./mycat start
- ./mycat status
-
-
- #CMD
-
- mycat install
- mycat start
- mycat status
- 复制代码
亦可安装后在服务里启动
通过工具链接到mycat 默认端口8066
4.1 创建单表
- CREATE TABLE test.`single` (
- `id` bigint NOT NULL AUTO_INCREMENT,
- `user_id` varchar(100) DEFAULT NULL,
- `traveldate` date DEFAULT NULL,
- `fee` decimal(10,0) DEFAULT NULL,
- `days` int DEFAULT NULL,
- `blob` longblob,
- PRIMARY KEY (`id`),
- KEY `id` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 复制代码
4.2 创建全局表
- CREATE TABLE test.`migrations` (
- `id` bigint NOT NULL AUTO_INCREMENT,
- `user_id` varchar(100) DEFAULT NULL,
- `traveldate` date DEFAULT NULL,
- `fee` decimal(10,0) DEFAULT NULL,
- `days` int DEFAULT NULL,
- `blob` longblob,
- PRIMARY KEY (`id`),
- KEY `id` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 BROADCAST;
- 复制代码
建全局表语句执行操作
1.更改mycat的整个库配置
2.根据存储节点信息建立物理库,物理表
4.3 创建分片表(分库分表)
- CREATE TABLE test.`travelrecord` (
- `id` bigint NOT NULL AUTO_INCREMENT,
- `user_id` varchar(100) DEFAULT NULL,
- `traveldate` date DEFAULT NULL,
- `fee` decimal(10,0) DEFAULT NULL,
- `days` int DEFAULT NULL,
- `blob` longblob,
- PRIMARY KEY (`id`),
- KEY `id` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 2 dbpartitions 2;
- 复制代码
dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 2 dbpartitions 2;就是分库分表语法
建分片表语句执行操作
1.更改mycat的整个库配置
2.根据当前集群名字prototype集群纳入到分片表的存储节点中
3.根据存储节点信息建立物理库,物理表
默认分片表的自增序列是雪花算法
发现表已经建成如下图:
4.4 插入数据
- insert into travelrecord values(1,1,now(),1,1,1);
- insert into travelrecord values(2,2,now(),2,2,2);
- insert into travelrecord values(3,3,now(),3,3,3);
- insert into travelrecord values(4,4,now(),4,4,4);
- insert into travelrecord values(5,5,now(),5,5,5);
- 复制代码
发现数据已经按规则分到表了, 规则是mod_hash(id) 也就是1%4=1落入1表, 依此类推
中文乱码在链接mysql时增加--default-character-set=utf8
至此简单的mycat使用结束
作者:yojhon
链接:https://juejin.cn/post/7098963244467322887
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。