本文介绍基于windows系统
1.下载文件
tar包:dl.mycat.org.cn/2.0/install…
jar包: dl.mycat.org.cn/2.0/
选择一个自己喜欢的版本,将jar包放入解压的tar包lib文件夹
2. mysql创建用户,权限配置
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
}
复制代码
3.启动mycat
cd mycat/bin
#PowerShell
./mycat install
./mycat start
./mycat status
#CMD
mycat install
mycat start
mycat status
复制代码
亦可安装后在服务里启动
4.建表
通过工具链接到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表, 依此类推
5.powershell乱码
中文乱码在链接mysql时增加--default-character-set=utf8
至此简单的mycat使用结束
作者:yojhon
链接:https://juejin.cn/post/7098963244467322887
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。