分类

安卓应用安卓游戏

编程软件 数据库类

MyCAT2(数据库中间件)

MyCAT2(数据库中间件) v1.14官方版 附教程

大小:2 MB

语言:简体中文系统:WinXP, Win2003, Vista, Win7, Win8, Win10

类别:数据库类时间:2021-02-24 15:56

MyCAT2是一款基于阿里巴巴的开源项目数据库中间件。软件其稳定性、可靠性、出色的体系结构和性能作为企业数据库的MySQL群集,MyCAT2可以代替昂贵的ORACLE群集,以低成本将独立数据库和应用程序平稳地迁移到云端,完美的解决由于数据存储和业务规模的快速增长而引起的瓶颈问题。

软件功能

1、支持SQL92标准

2、遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。

3、基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。

4、支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster

5、基于Nio实现,有效管理线程,高并发问题。

6、支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。

7、支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。

8、支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。

9、支持多租户方案。

10、支持分布式事务(弱xa)。

11、支持全局序列号,解决分布式下的主键生成问题。

12、分片规则丰富,插件化开发,易于扩展。

13、强大的web,命令行监控。

14、支持前端作为mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server、mongodb。

15、支持密码加密

16、支持服务降级

17、支持IP白名单

18、支持SQL黑名单、sql注入攻击拦截

19、支持分表(1.6)

20、集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

软件特色

1、基于阿里巴巴的开源项目Cobar,其稳定性,可靠性,出色的体系结构和性能以及许多成熟的用例使MyCAT有了良好的开端。站在巨人的肩膀上,MyCAT感到足够自信,可以走得更远。

2、MyCAT的基因整合了最好的开源项目和创新思想,使MyCAT领先于其他当前类似的开源项目,甚至超越了某些商业产品。

3、MyCAT支持强大的技术团队,该团队的参与者经验超过5年,其中包括一些高级软件工程师,架构师,DBA等。优秀的技术团队可确保Mycat的产品质量。

4、MyCAT不依赖任何商业公司。它与一些开源项目不同,后者的重要特征包含在其商业产品中,并使开源项目像装饰一样。

MyCAT2安装配置方法

1. 下载源码并编译

clone源代码

maven编译 mvn clean install

在target目录下找到操作系统对应的压缩包,如linux下的mycat2-0.1-20170906223147-linux.tar.gz

将压缩包解压缩到指定路径

2. 修改配置文件

配置文件在conf目录下,需要修改的配置文件包括:

mycat.yml,指定ip和端口号

user.yml,配置user信息,包括name和password,登录的时候需要按照指定的用户名密码登录,schemas对应为schema.yml中的schema,白名单功能默认关闭

cluster.yml,指定是否开启集群模式以及集群节点的基本信息,默认集群关闭

balancer.yml,指定是否开启负载均衡模式以及负载均衡的基本信息,默认负载均衡关闭

heartbeat.yml,配置心跳相关信息,可以使用默认值

schema.yml,设置相关的schema

datasource.yml,设置后端连接的复制组信息

replica-index.yml,设置复制组写节点配置,默认为0

3. 运行

运行的方式与 1.6 相同

linux 环境 运行 bin 目录下 ./mycat {console | start | stop | restart | status | dump }

window 环境 运行 bin 目录下 startup_nowrap.bat

运行成功后,使用 root 账号登录,登录密码 123456 登录,端口号为mycat.yml中配置的端口号,默认为8066

4. 集群启动

conf目录下,需要正确配置mycat.yml,cluster.yml,balancer.yml

配置完成后,按照第三步的方式依次启动各个节点的mycat,将自动进行集群管理

MyCAT2使用教程

前提:

准备两个MySQL服务器(prototype服务器),端口3306,3307 ,用户名:root 密码:123456

Mycat2的jar包

Mycat服务器级别配置

保证配置文件夹有server.json,内容至少是

{

"server":{

"ip":"127.0.0.1",

"mycatId":1,

"port":8066,

}

}

启动过程中,Mycat会在配置文件夹生成默认配置,加载上述的MySQL中的系统表,并建立用户名为

root 密码为123456

此时使用客户端登录Mycat即可

Mycat可以在控制台创建库

CREATE DATABASE db1

建库语句执行两个操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

Mycat可以在控制台操作

切换逻辑库

USE `db1`;

建表语句执行两个操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

删除逻辑库

DROP DATABASE db1

建表语句执行两个操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

创建单表

CREATE TABLE db1.`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;

建表语句执行两个操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

使用注释动态配置Mycat

如果使用MySQL官方客户端添加 -c 参数避免客户端过滤注释

添加存储数据源

/*+ mycat:createDataSource{

"name":"dw0",

"url":"jdbc:mysql://127.0.0.1:3306",

"user":"root",

"password":"123456"

} */;

/*+ mycat:createDataSource{

"name":"dr0",

"url":"jdbc:mysql://127.0.0.1:3306",

"user":"root",

"password":"123456"

} */;

/*+ mycat:createDataSource{

"name":"dw1",

"url":"jdbc:mysql://127.0.0.1:3307",

"user":"root",

"password":"123456"

} */;

/*+ mycat:createDataSource{

"name":"dr1",

"url":"jdbc:mysql://127.0.0.1:3307",

"user":"root",

"password":"123456"

} */;

添加集群配置

/*! mycat:createCluster{"name":"c0","masters":["dw0"],"replicas":["dr0"]} */;

/*! mycat:createCluster{"name":"c1","masters":["dw1"],"replicas":["dr1"]} */;

删除表

drop table db1.travelrecord

删表语句执行两个操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL,而不会在其他存储节点执行

创建全局表

CREATE TABLE db1.`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 BROADCAST;

建全局表语句执行操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

3.根据当前集群名字首字母为c的集群纳入到全局表的存储节点中

4.根据存储节点信息建立物理库,物理表

创建分片表

CREATE TABLE db1.`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 hash(id) tbpartition by hash(id) tbpartitions 2 dbpartitions 2;

建分片表语句执行操作

1.更改mycat的整个库配置

2.在prototype服务器执行此SQL

3.根据当前集群名字首字母为c的集群纳入到分片表的存储节点中

4.根据存储节点信息建立物理库,物理表

默认分片表的自增序列是雪花算法

更新日志

v1.13

修复所有下推中带有错误联合的连接

修复生成的sql带有类型转换导致mysql运算不正确

修复黑客路由器损坏

修复黑客路由器响应int类型可能超出数字范围

∨ 展开

同类推荐

相关下载

热门游戏

下载排行

热门关键字

  • 编程软件
  • 编程控件
  • 编译调试
  • 开发环境
  • 网页制作
  • 安装制作
  • 数据库类
  • Java相关
  • 加壳脱壳
  • 控件下载
  • 源码相关
  • 编程其他