一、Mycat2介绍与下载安装

news2024/11/20 7:05:18

第一章 入门概述
1.1 是什么
Mycat 是数据库中间件。
1、数据库中间件
中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟
通。
例子:Tomcat,web中间件。
数据库中间件:连接java应用程序和数据库
2、为什么要用Mycat?
1 Java与数据库紧耦合。
2 高访问量高并发对数据库的压力。
3 读写请求数据不一致
3、数据库中间件对比
在这里插入图片描述
1.Cobar属于阿里B2B事业群,始于2008年,在阿里服役3年多,接管3000+个MySQL数
据库的schema,集群日处理在线SQL请求50亿次以上。由于Cobar发起人的离职,
Cobar停止维护。
2. Mycat是开源社区在阿里cobar基础上进行二次开发,解决了cobar存在的问题,并
且加入了许多新的功能在其中。青出于蓝而胜于蓝。
3. OneProxy基于MySQL官方的proxy思想利用c进行开发的,OneProxy是一款商业收费
的中间件。舍弃了一些功能,专注在性能和稳定性上。
4. kingshard由小团队用go语言开发,还需要发展,需要不断完善。
5. Vitess是Youtube生产在使用,架构很复杂。不支持MySQL原生协议,使用需要大量
改造成本。
6. Atlas是360团队基于mysql proxy改写,功能还需完善,高并发下不稳定。
7. MaxScale是mariadb(MySQL原作者维护的一个版本) 研发的中间件
8.MySQLRoute是MySQL官方Oracle公司发布的中间件

Mycat的官网
http://www.mycat.org.cn/
1.2 干什么
1、读写分离
在这里插入图片描述
2、数据分片
垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)
在这里插入图片描述
3、多数据源整合
在这里插入图片描述
1.3 原理
Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语
句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、
缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,
最终再返回给用户。
在这里插入图片描述
这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用
Mycat 还是 MySQL。

第二章 安装启动
2.1 安装
1、下载安装包
下载对应的 tar 安装包,以及对应的 jar 包
tar(zip)包 :
http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template1.20.zip
jar
包 :
http://dl.mycat.org.cn/2.0/1.21-release/ (下载最新的 jar 包)
下载所需的 mycat2 的 fat jar 一般大小为 100mb 的一个 jar 文件
把这个 jar 放进解压的 tar 中的 mycat\lib 文件夹下
在这里插入图片描述
在这里插入图片描述
2、解压后即可使用
把整合好的文件夹拷贝到 linux 下 /usr/local/
在这里插入图片描述
3、修改文件夹及以下文件的权限
修改成最高权限,否则运行启动命令时,会因权限不足而报错
在这里插入图片描述
2.2 启动
1、在mycat连接的mysql数据库里添加用户
创建用户 ,用户名为mycat,密码为123456,赋权限,如下:

CREATE USER 'mycat'@'%' IDENTIFIED BY '123456';
--必须要赋的权限mysql8才有的
GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';
---视情况赋权限
GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;
flush privileges;

2、修改mycat的prototype的配置
启动mycat之前需要确认prototype数据源所对应的mysql数据库配置,修改对应的
user(用户),password(密码),url中的ip

…
vim conf/datasources/prototypeDs.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123123",
"type":"JDBC",
"url":"jdbc:mysql://localhost:3306/mydb1?useUnicode=true&serverTimezone=Asi
a/Shanghai&characterEncoding=UTF-8",
"user":"root",
"weight":0
}

3、验证数据库访问情况
Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问
情况。

mysql -uroot -p123123 -h 192.168.140.100 -P 3306
mysql -uroot -p123123 -h 192.168.140.99 -P 3306
#如远程访问报错,请建对应用户
grant all privileges on *.* to root@'缺少的host' identified by '123123';

4、启动mycat
linux启动命令

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

2.3 登录
1、登录后台管理窗口
此登录方式用于管理维护 Mycat

mysql -umycat -p123456 -P 9066
#常用命令如下:
show database
`![在这里插入图片描述](https://img-blog.csdnimg.cn/9302e257407349ccbee596cdc48831dc.png)
``
help;
![在这里插入图片描述](https://img-blog.csdnimg.cn/31f5601b55fe400eb4398a4d0bed32b8.png)
2、登录数据窗口
此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat

```java
mysql -umycat -p123456 -P 8066

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

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

相关文章

解压后的文件丢失怎么恢复?解压文件丢失4种恢复方法

您是否出现过解压文件丢失的情况呢?解压文件通俗易懂地讲就是把压缩好了的文件解开。而有些小伙伴在解压文件以后发现丢失了,这些丢失的文件或许是您重要的img解压文件/rar文件解压/zip解压文件,为了正确解决解压文件丢失问题,下面…

在Visual Studio 2017上配置并使用OpenGL

1 在Visual Studio 2017上配置并使用OpenGL 在GLUT - The OpenGL Utility Toolkit:GLUT - The OpenGL Utility Toolkit中点击“GLUT for Microsoft Windows 95 & NT users”,选择“If you want just the GLUT header file, the .LIB, and .DLL file…

Win7系统电脑开机总出现硬盘自检的简单解决方法

你是不是经常会遇到电脑开机进行硬盘自检,而且每次开机都检查很久不能跳过;怎么才能跳过这一步骤呢?下面教大家如何让Win7系统电脑在开机的时候跳过硬盘自检这一步骤,加快开机时间。 解决步骤: 1、按下“Win R”快捷键…

冠达管理:美联储或已达加息终点,但反弹面临诸多不确定性

本周以来,多项数据显现美国经济正在降温,联邦基金利率期货显现,美联储本轮加息周期或已结束。 于美股而言,正处于高位的货币基金是未来继续上涨的潜在动力。不过,与此前反弹行情的推进力比较,当时的不确定…

SAP:IDCNGRIR_GNB报表展示物料描述与采购订单不一致

1、问题描述: 目前在项目中发现执行SAP的IDCNGRIR_GNB报表的时候,出现了物料编码和订单的物料编码不一致的情况: 2、问题展示: 采购订单上物料及编码显示 IDCNGRIR_GNB报表执行结果显示 3、问题原因: 调试程序发现…

2023年信息安全管理与评估赛项参考答案-模块1任务一

根据网络拓扑图所示,按照IP 地址规划表,对防火墙的名称、各接口IP 地址进行配置。共8 分,每错1 处(行)扣1 分,扣完为止。地址、安全域、接口(状态为UP)、名称都正确。 2.根据网络拓扑…

一文读懂融资融券交易技巧!在上海开融资融券账户交易利率一般是多少?

融资融券交易技巧包括以下几点: 熟悉股票市场:了解市场走势、公司基本面等信息,根据趋势选择合适的股票进行交易。 做好风险管理:对买卖的风险进行合理评估,设定止损价位,防止损失过大。 控制杠杆比例&am…

java代码设计方案

一、代码重复问题处理 1、利用工厂模式 模板方法模式,消除 if…else 和重复代码 场景: 假设要开发一个购物车下单的功能,针对不同用户进行不同处理: 普通用户需要收取运费,运费是商品价格的 10%,无商品折…

three.js渲染带动画的glb文件

1. 准备工作 将下列文件在three.js的包中找到,注意的是我这里使用的是模块化版本的,这里不知道模块化的,可以先去看一下es6的模块化。 控制器: OrbitControls.js 加载器:GLTFLoader.js 材质: RoomEnvironm…

学习JAVA打卡第四十八天

Math类 在编写程序时可能需要计算一个数的平方根、绝对值或获取一个随机数等。 Math类的常用方法 BigInteger类 程序如果需要处理特别大的整数就可以用Java.math包中的BigInteger类的对象。 可以构造public BigInteger(string val)构造一个十进制的B…

Flink+Paimon多流拼接性能优化实战

目录 (零)本文简介 (一)背景 (二)探索梳理过程 (三)源码改造 (四)修改效果 1、JOB状态 2、Level5的dataFile总大小 3、数据延迟 (五&…

【zookeeper】zookeeper介绍

分布式协调技术 在学习ZooKeeper之前需要先了解一种技术——分布式协调技术。那么什么是分布式协调技术?其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的…

Joint contrast enhancement and exposure fusion for real-world image dehazing、近红外去雾、(近)红外和可见光数据集

今天给大家分享一篇发表在IEEE TMM上的去雾文章Joint Contrast Enhancement and Exposure Fusion for Real-World Image Dehazing 作者从对比度增强和曝光融合的视角来解决图像去雾问题,在真实场景上取得了较好的去雾效果。此外,作者将所提出的方法应用…

mqtt集群搭建并使用nginx做负载均衡_亲测得结论

mqtt集群搭建 RabbitMQ集群搭建和测试总结_亲测 搭建好RabbitMQ集群,并开启mqtt插件功能,mqtt集群也就搭建好了 nginx配置mqtt负载均衡 #修改rabbitmq1节点ip为1.19的nginx配置 vim /etc/nginx/nginx.confhttp { } #在http外添加如下配置 stream {upstream rabbitmqtt {ser…

OpenCV(十二):图像透视变换

目录 1.透视变换介绍 2.计算透视变换矩阵getPerspectiveTransform() 3.透视变换函数warpPerspective() 4.demo 1.透视变换介绍 透视变换是一种将原始图像映射到目标图像平面上的投影变换,又称为四点变换。 透视变换矩阵的一般形式如下所示&#xff…

城市内涝积水监测预警系统 yolov8

城市内涝积水监测预警系统通过yolov8网络深度学习框架,算法一旦识别到道路出现积水,城市内涝积水监测预警系统会立即发出预警信号。并及时通知相关人员。YOLO检测速度非常快。标准版本的YOLO可以每秒处理 45 张图像;YOLO的极速版本每秒可以处…

具有 70V 总线故障保护功能的ISO1042BQDWVRQ1、ISO1042BQDWVQ1、ISO1042QDWVRQ1汽车类隔离式 CAN 收发器

一、目标应用 • 起动机/发电机 • 电池管理系统 (BMS) • 直流/直流转换器 • 车载充电器 (OBC) 和无线充电器 • 逆变器和电机控制 二、器件规格 1、ISO1042BQDWVRQ1 完全版 收发器,隔离式 1/1 CANbus 8-SOIC 类型:收发器,隔离式 协议&a…

day30 日期转换

一:Date Date类: 这个类是java.util.Date getTime() : 获取内部维护的long值 Date date new Date(); long time date.getTime(); setTime():按照指定的long值(表示的时间)设置Date表示的时间 time 60*60*24*1000;…

项目实践:类平面抓取点计算(占位,后面补充)

文章目录 文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_

贯穿嵌入式开发的编程语言?

有个朋友和我说嵌入式行业中有没有什么神技巧,所谓的一招鲜吃遍天一般,那还真的有,在嵌入式开发中,C语言是最广泛使用的编程语言之一,覆盖范围几乎涵盖了整个领域。视频后方有免费的嵌入式学习资料,入门和进…