> 文章列表 > mycat2安装配置,分库分表,一库多表

mycat2安装配置,分库分表,一库多表

mycat2安装配置,分库分表,一库多表

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

进入目录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;