Mycat2(二)windows搭建mycat2、mycat2相关概念、配置文件解释

5 篇文章 1 订阅
5 篇文章 0 订阅

windows搭建mycat2步骤

  1. 修改C:\Windows\System32\drivers\etc下的hosts文件,防止dns污染。执行ipconfig/flushdns。不修改hosts文件,可能无法打开下面的下载页面。
210.51.26.184 mycat.org.cn www.mycat.org.cn dl.mycat.org.cn

下载mycat2

在这里插入图片描述
将下载的template解压,然后将release的jar包,托到解压template得到的mycat\lib目录下。

修改配置并启动

  1. 修改mycat\conf\datasources目录下的prototypeDs.datasource.json文件
    {
    	"dbType":"mysql",
    	"idleTimeout":60000,
    	"initSqls":[],
    	"initSqlsGetConnection":true,
    	"instanceType":"READ_WRITE",
    	"maxCon":1000,
    	"maxConnectTimeout":3000,
    	"maxRetryCount":5,
    	"minCon":1,
    	"name":"prototypeDs",
    	"password":"admin",
    	"type":"JDBC",
    	"url":"jdbc:mysql://localhost:23306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
    	"user":"root",
    	"weight":0
    }
    
  2. 进入\mycat\bin目录,执行mycat install安装,执行mycat start启动
    D:\devsoft\mycat\bin
    λ mycat install
    wrapper  | CreateService failed - 指定的服务已存在。 (0x431)
    
    D:\devsoft\mycat\bin
    λ mycat stop
    wrapper  | Stopping the mycat2 service...
    wrapper  | mycat2 stopped.
    
    D:\devsoft\mycat\bin
    λ mycat start
    wrapper  | Starting the mycat2 service...
    wrapper  | mycat2 started.
    
    D:\devsoft\mycat\bin
    λ mycat status
    wrapper  | The mycat2 Service is installed.
    wrapper  |   Start Type: Automatic
    wrapper  |   Interactive: No
    wrapper  |   Running: Yes
    
  3. 访问
    mysql -u root -p 123456 -P 9066 	# 登录管理监控窗口
    mysql -u root -p 123456 -P 8066 	# 登录数据窗口
    

mycat2命令

mycat start		# 启动
mycat status	# 查看状态
mycat stop 		# 停止
mycat restart	# 重启
mycat console	# 前台运行
mycat pause		# 暂停
mycat install	# 添加到系统自动启动(暂未实现)
mycat remove	# 取消随系统自动启动(暂未实现)

mycat2相关概念

  1. 分库分表
  2. 逻辑库(数据库代理中的数据库,可映射被代理的物理库)
  3. 逻辑表(数据库代理中的表,可映射被代理的数据库中的物理表。可以一对一,也可以一对多)
  4. 物理库(被代理数据库中的库)
  5. 物理表(被代理数据库中的表)
  6. 拆分键(分片键,描述拆分逻辑表的数据规则的字段)
  7. 物理分表(已进行数据拆分的,在数据库上的物理表,是分片表的一个分区)
  8. 物理分库(包含多个物理分表的库)
  9. 分库(通过多个数据库拆分分片表,每个数据库一个物理分表)
  10. 分片表/水平分表(按照一定规则把数据拆分成多个分区的表)
  11. 单表(没有分片,没有数据冗余的表)
  12. 全局表/广播表(每个数据库实例都冗余全量数据的逻辑表)
  13. ER表(狭义的指父子表;广义上指具有相同数据分布的一组表)
  14. 集群:多个数据节点组成的逻辑节点,在 mycat2 里,它是把对多个数据源地址视为一个数据源地址(名称),并提供自动故障恢复、转移,即实现高可用、负载均衡的组件。
  15. 数据源:连接后端数据库的组件,是数据库代理中连接后端数据库的客户端。
  16. 原型库:mycat2后的真实物理数据库。

mycat2配置文件

目录结构:mycat/conf

| - clusters		# 集群相关配置
|	- prototype.cluster.json
| - datasources		# 数据源相关配置
|  	- prototypeDs.datasource.json
| - schemas			# 逻辑库表相关配置
| - sequences
| - sqlcaches
| - users	
|  	- root.user.json
|dbseq.sql
|log-back.xml
|mycat.lock
|server.json		# 服务相关配置
|simplelogger.properties
|state.json
|version.txt
|wrapper.conf

用户相关配置属性

配置路径:mycat/conf/users/root.user.json

{
	"dialect":"mysql",	// 数据库方言:mysql
	"ip":null,		// 客户端访问IP,建议为空。
	"password":"123456",	// 密码
	"transactionType":"proxy",	// 事务类型:本地事务
// 可选值:proxy-本地事务,兼容性好,但在涉及大于1个数据库事务时,commit阶段失败会导致不一致
// XA事务:需要确认存储节点集群类型是否支持XA。
// 可以通过语句实现切换:set transaction_policy = 'xa'/'proxy'
// 通过语句查询:select @@transaction_policy
	"username":"root"	//	用户名
	,isolation:3 		// 设置初始化的事务隔离级别。可选值如下:
// 未提交读 read_uncommitted:1;已提交读read_committed:2;
// 可重复读 repeated_read:3 默认;序列化 serializable:4
}

数据源datasources

配置路径:mycat/conf/datasources/prototypeDs.datasource.json
命名方式:{数据源名称}.datasource.json
配置内容与解释:

{
	"dbType":"mysql",	// 数据库类型:mysql
	"idleTimeout":60000,	
	"initSqls":[],	// 初始化SQL
	"initSqlsGetConnection":true,	// 对于JDBC每次获取连接,是否都执行初始化SQL
	"instanceType":"READ_WRITE",	
	// instanceType 配置实例制度还是读写。可选值:READ_WRITE、READ、WRITE
	"name":"prototypeDs",	// 数据源名称
	"password":"admin",		// 数据库密码
	"type":"JDBC",			// 数据源类型,默认JDBC
	"url":"jdbc:mysql://localhost:23306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",	// 数据库访问地址
	"user":"root",	//数据库用户名
	"weight":0		// 负载均衡权重
// 连接相关配置
	,"maxCon":1000,		// 最大连接数
	"minCon":1,			// 最小连接数
	"maxConnectTimeout":3000,	// 最大连接超时时间
	"maxRetryCount":5	// 失败重试次数
}

集群cluster相关配置

配置路径:mycat/conf/cluster/prototype.cluster.json
命名方式:{集群名称}.cluster.json
配置内容与解释:

{
	"clusterType":"MASTER_SLAVE",	// 集群类型
// 可选值:SINGLE_NODE:单一节点;MASTER_SLAVE:普通主从;
// GARELA_CLUSTER:garelaCluster/PXC集群;MHA:MHA集群;MGR:MGR集群
	"heartbeat":{
		"heartbeatTimeout":1000,
		"maxRetryCount":3,	// 最大重试次数,2021-6-4前是maxRetry,后更正为maxRetryCount。
		"minSwitchTimeInterval":300,
		"slaveThreshold":0
	},
	"masters":[	//配置多个主节点,在有一个节点宕机时,会选择一个检查存活的数据源作为主节点
		"prototypeDs"
	],
	"replicas":[	//配置多个从节点
		"xxxx"
	],
	"maxCon":200,
	"name":"prototype",
	"readBalanceType":"BALANCE_ALL",	// 读负载均衡策略,可选值如下:
// BALANCE_ALL(默认):获取集群所有数据源;BALANCE_ALL_READ:获取集群中允许读的数据源
// BALANCE_READ_WRITE:获取集群允许读写的数据源,但允许读的优先;
// BALANCE_NONE:获取集群允许写的数据源,即主节点中选择。
	"switchType":"SWITCH"	// 切换类型,可选值如下:
	// NOT_SWITCH:不进行主从切换;SWITCH:进行主从切换
}

逻辑库表schemas配置

配置路径:mycat/conf/schemas/testdb.schema.json
命名方式:{逻辑表名}.schema.json
配置内容与解释:

{
	"customTables":{},
	"globalTables":{},
	"normalProcedures":{},
	"normalTables":{
		"testdb":{
			"createTableSQL":"CREATE TABLE `testdb`.`testTable` (\n\t`id` int(0) NOT NULL,\n\t`name` varchar(255) NULL,\n\tPRIMARY KEY (`id`)\n)",	// 建表语句,可选
			"locality":{
				"schemaName":"testdb",	//物理库,可选
				"tableName":"testTable",	// 物理表,可选
				"targetName":"prototype"  // 目标数据源或集群。
				//自动从prototype目标加载test库下的物理表或视图作为单表,prototype必须是mysql服务器。
			}
		}
	},
	"schemaName":"testdb",	// 逻辑库名
	"shardingTables":{},
	"views":{}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Huathy-雨落江南,浮生若梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值