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

news2024/11/17 11:37:56

文章目录

  • windows搭建mycat2步骤
    • 下载mycat2
    • 修改配置并启动
    • mycat2命令
  • mycat2相关概念
  • mycat2配置文件
    • 用户相关配置属性
    • 数据源datasources
    • 集群cluster相关配置
    • 逻辑库表schemas配置

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":{}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/113421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node.js+uni计算机毕设项目基于微信小程序某企业考勤系统(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

「设计模式」享元模式

「设计模式」享元模式 文章目录「设计模式」享元模式[toc]一、概述二、结构三、案例实现四、优缺点五、JDK中的享元模式六、小结一、概述 在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源&#x…

node.js+uni计算机毕设项目个人财务管理小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

《图解TCP/IP》阅读笔记(第六章 6.5、6.6)——其他代表性的传输层协议与UDP、TCP首部

6.5 其他传输层协议 实际上,UDP与TCP在很长的一段时间,霸占了“传输至尊榜”中的前两位,难以分出高下,但是仍有几款“神兵利器”,被收入兵器榜前十位,接下来就来介绍一些已经被提案且在今后可能会被广泛使…

控制图简明原理及Plotly实现控制图Python实践

1. 控制图简明原理 1.1. 关于控制图概述 控制图(Control Chart)又叫管制图,图上有三条平行于横轴的直线:中心线(CL,Central Line)、上控制限(UCL,Upper Control Limit&…

2023跨面代码(烟花+自定义文字+背景音乐+雪花+倒计时)

2023年快要到来啦,很高兴这次我们又能一起度过~ 目录 一、前言 二、跨年烟花 三、效果展示 倒计时 2023​编辑 兔圆圆​编辑 四、编码实现 index.html 烟花,雪花,背景音乐,页面样式 index.js 自定义文字 五、获取代码 需…

RabbitMQ 第一天 基础 2 RabbitMQ 的安装配置 2.2 RabbitMQ 管控台使用

RabbitMQ 【黑马程序员RabbitMQ全套教程,rabbitmq消息中间件到实战】 文章目录RabbitMQ第一天 基础2 RabbitMQ 的安装配置2.2 RabbitMQ 管控台使用2.2.1 RabbitMQ 控制台的使用第一天 基础 2 RabbitMQ 的安装配置 2.2 RabbitMQ 管控台使用 2.2.1 RabbitMQ 控制台…

算法学习笔记

最近无意中看到一个算法的网站,看着感觉介绍得挺系统的,虽然做算法以及指导学生开发各种算法这么些年了,却没有真正系统的学习过(几年前啃过算法导论,但是苦于那蹩脚的中文翻译,也没有去看英文原文&#xf…

车用DC-DC模块 1224V转8V3A过认证大塑料外壳

名称:车用12V转8V3A电源转换器 型号:LM40J8V3A3S 性质:非隔离型的BUCK电源转换器, 特点:采用集成IC设计,具有转换效率高,体积小,稳定可靠的特点,采用灌胶工艺&#xf…

从零搭建机器学习平台Kubeflow

1 Kubeflow简介 1.1 什么是Kubeflow 来自官网的一段介绍: Kubeflow 项目致力于使机器学习 (ML) 工作流在 Kubernetes 上的部署变得简单、可移植和可扩展。 Kubeflow的目标不是重新创建其他服务,而是提供一种直接的方法,将用于 ML 的同类最佳…

Java项目:springboot田径运动会管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为管理员、学生两种角色, 管理员主要功能包括: 功能:登录、查看个人资料、修改密码、选手管理、赛事…

SpringBoot 2.7.1学习---构建SpringBoot的几种方式

开发环境: SpringBoot2.7.1需要JDK版本8,Spring版本需要5.3.20或更高版本 maven版本3.5以上 如果不使用内置Tomcat,需要tomcat9.0或以上 Tomcat9好像没有,先搞个 SpringBoot 2.7.1快速入门 构建SpringBoot的几种方式 1.maven方式构建 写一个启动类 且加上SpringBootAppli…

还在手动发早安吗?教你用java实现每日给女友微信发送早安

摘要:教你如何用java实现每日给女友微信发送早安等微信信息。本文分享自华为云社区《java实现每日给女友微信发送早安等微信信息》,作者:穆雄雄 。 前言 据说这个功能最近在抖音上很火,我没有抖音,没有看到。 但是我…

排序

章节目录:一、排序算法1.1 概述1.2 分类1.3 算法复杂度1.4 时间复杂度1.5 空间复杂度二、冒泡排序2.1 概述2.2 算法分析2.3 代码示例三、选择排序3.1 概述3.2 算法分析3.3 代码示例四、插入排序4.1 概述4.2 算法分析4.3 代码示例五、希尔排序5.1 概述5.2 算法分析5.…

裸露土堆识别系统 yolov7

裸露土堆识别系统基于yolov7深度学习架构模型,对现场画面实时分析检测,如检测到画面中的土堆有超过40%部分没被绿色防尘网覆盖,则立即抓拍存档告警。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0…

我靠steam搬砖,日赚几千,投入不到万元

什么做苦力、技能、直播卖货,电商等等对比我这个都是小钱。我这个方法是利用了大部分人的信息差来赚钱。 我就不藏着掖着了,授人以鱼不如授人以渔,反正你赚的又不是我的钱。 什么是“Steam游戏搬砖”呢? 简单来说,就…

Docker网络

网络基础知识 网络相关命令 查看Linux中的网卡 [rootlocalhost ~]# ip link show[rootlocalhost ~]# ls /sys/class/net[rootlocalhost ~]# ip a 状态: UP、DOWN、UNKNOW link/ether:MAC地址 inet:该网卡绑定的IPv4地址 [rootlocalhost ~]# ip link …

Python和MySQL对比(1):用Pandas 实现MySQL语法效果

文章目录一、前言二、语法对比数据表SELECTASWHEREDISTINCTGROUP BYORDER BYHAVINGLIMIT三、小结一、前言 环境: windows11 64位 Python3.9 MySQL8 pandas1.4.2 本文主要介绍 MySQL 中的关键字:SELECT、AS、WHERE、DISTINCT、GROUP BY、ORDER BY、HAVING…

文献检索

文献检索第一篇检索作业总结第一章检索任务1.1检索课题1.2确定选题所属学科1.3中英文检索词第二章检索策略与结果2.1检索中文期刊文献2.1.1 CNKI中国期刊全文数据库2.1.2 维普期刊全文数据库2.1.3 万方期刊数据库2.1.4 超星期刊全文2.2检索中文学位论文2.2.1 CNKI博硕学位论文数…

Java项目:SpringBoot美容院后台管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为美容院后台管理系统, 操作员包含以下功能:操作员登陆,操作员首页,会员列表,添加会员,添加美容产品,购买商品,添…