mycat2安装配置,mycat2分库分表,mycat2一库多表,mycat2自增id

1、官网下载(官网下载地址)

官网下载地址 Index of /2.0/

下载模板

下载jdk包

下载好后吧jdk包房到mycat的lib目录下

 

 2、配置启动

配置结构

mycat配置文件夹
		+ clusters
		    - prototype.cluster.json //无集群的时候自动创建
			- c0.cluster.json
            - c1.cluster.json
        + datasources
        	- prototypeDs.datasource.json //无数据源的时候自动创建
        	- dr0.datasource.json
        	- dw0.datasource.json
        + schemas
        	- db1.schema.json
        	- mysql.schema.json
        + sequences
        	- db1_schema.sequence.json
 -server.json //服务器配置
 -state.json //mycat运行状态,包含集群选举的主节点信息,配置时间戳

访问端口

 配置mycat登录账号密码

 数据库配置mysql.schema.json,schemaName的值在scemas文件夹中必须是唯一的,如果有重复,启动会报错,这个修改这个数据库名称就可以启动

进入目录mycat/bin

mycat instal 安装

mycat start 启动

mycat stop 停止

运行后就可以去连接了

3、创建分库分表

不需要在配置文件,直接创建表,为什么能自动,主要这一点

tbpartitions一个库放几个分片,dbpartitions创建多少个库

dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 3 dbpartitions 3;

教程ER关系 · 语雀

CREATE TABLE `dade66` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  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;


insert into dade66 values(1,'大得1');
insert into dade66 values(2,'大得2');
insert into dade66 values(3,'大得3');
insert into dade66 values(4,'大得4');
insert into dade66 values(5,'大得5');




CREATE TABLE `dade66` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  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;

 4、如果不分库分表按照正常表创建就可以

单创建表(只会把SQL转发对应节点)
CREATE TABLE IF NOT EXISTS `user2` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARSET = utf8 COLLATE = utf8_unicode_ci;
创建全局表(把sql往配置的(多个)dataNode下发)
CREATE TABLE IF NOT EXISTS `user3` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci BROADCAST; 

5、自增id

文档  序列号(sequence) · 语雀

导入模板的dbseq.sql文件到主数据库,不要在mycat2的连接窗口导入

测试·

1、建库建表

CREATE TABLE `dade88` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  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;

2、执行自增(在sql窗口执行,会自动配置到文件),dade是数据库名_dade88表名,命名方式   (数据库名_表名)

/*+ mycat:setSequence{
"name":"dade_dade88",
"clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
"name":"dade_dade88",
  "targetName": "prototype",
  "schemaName":"dade"
  } */;

3、配置mycat_sequence

 插入测试

id写入0,不写报错空,写0就是会自增
insert into dade88 values(0,'大得22');

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值