Mycat概述及基本使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mycat概述及基本使用

概述

Mycat是数据库中间件。官网:http://www.mycat.io/

中间件

是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。

数据库中间件

连接Java等应用程序和数据库。

为什么要用Mycat

  • Java与数据库紧耦合。
  • 高访问量高并发对数据库的压力。
  • 读写请求数据不一致。

Mycat作用

读写分离

001.Mycat_读写分离.jpg

数据分片

  • 垂直拆分(分库)
  • 水平拆分(分表)
  • 垂直+水平拆分(分库分表)

002.Mycat_数据分片.jpg

多数据源整合

Mycat支持多数据源

003.Mycat_多数据源整合.jpg

Mycat实现原理

Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析,比如:分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终在返回给用户。

这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用的是Mycat还是MySQL

004.Mycat_原理.jpg

安装启动

安装

下载地址:http://dl.mycat.org.cn/。选择版本进行下载即可。

本文使用的是1.6.7.1版本,下载地址:http://dl.mycat.org.cn/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

解压即可使用

配置文件

  • schema.xml:定义逻辑库、表、分片节点等内容。
  • rule.xml:定义分片规则。
  • server.xml:定义用户以及系统相关变量,如端口等。

启动

  1. 修改配置文件server.xml
    修改用户信息,与MySQL区分,如下:
<username="mycat"defaultAccount="true"><propertyname="password">123456</property><propertyname="schemas">TESTDB</property></user>
  1. 修改配置文件schema.xml
    删除<schema>标签的表信息,<dataNode>标签只保留一个,<writeHost><readHost>只留一对

<?xmlversion="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schemaxmlns:mycat="http://io.mycat/"><schemaname="TESTDB"checkSQLschema="false"sqlMaxLimit="100"dataNode="dn1"></schema><dataNodename="dn1"dataHost="host1"database="testdb"/><dataHostname="host1"maxCon="1000"minCon="10"balance="0"writeType="0"dbType="mysql"dbDriver="native"switchType="1"slaveThreshold="100"><heartbeat>select user()</heartbeat><!-- can have multi write hosts --><writeHosthost="hostM1"url="192.168.110.145:3306"user="root"password="123456"><!-- can have multi read hosts --><readHosthost="hostS1"url="192.168.110.145:3306"user="root"password="123456"/></writeHost></dataHost></mycat:schema>
  1. 验证数据库访问情况
    Mycat作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。
mysql -uroot -p123456 -h 192.168.110.145 -P 3306

#如远程访问报错,请建对应用户

grant all privileges on *.* to root@'缺少的host' identified by '123456';
  1. 启动程序
  • 控制台启动: mycat/bin 目录下执行./mycat console
  • 后台启动: mycat/bin 目录下执行./mycat start

登录

  1. 登录后台管理窗口
    此登录方式用于管理维护 Mycat
mysql -umycat -p123456 -P 9066 -h 192.168.110.145
  1. 常用命令如下:
# 查看数据库
show database


# show 帮助
show @@help
  1. 登录数据窗口
    此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问Mycat
mysql -umycat -p123456 -P 8066 -h 192.168.110.145


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
存储 算法 Java
Java解压本地zip文件(zip4j)
Java解压本地zip文件(zip4j)
Java解压本地zip文件(zip4j)
|
Linux
Win或Linux系统下用conda安装Open Babel
Win或Linux系统下用conda安装Open Babel
2094 0
Win或Linux系统下用conda安装Open Babel
|
5月前
|
机器学习/深度学习 编解码 人工智能
Kimi开源MoE架构多模态推理模型,小激活参数,大能量!
最近Moonshot AI推出了 Kimi-VL,这是一个高效的开源混合专家(MoE)视觉-语言模型(VLM),它提供了先进的多模态推理、长上下文理解以及强大的代理能力——所有这些功能都只需激活其语言解码器中的2.8B参数(Kimi-VL-A3B)。
316 1
|
存储 SQL 数据库
什么是 ACID 特性?
【8月更文挑战第3天】
710 11
什么是 ACID 特性?
|
11月前
|
JavaScript 数据安全/隐私保护
uniapp功能权限判断$auth.auth $auth.role显示判断生成源码
uniapp功能权限判断$auth.auth $auth.role显示判断生成源码
169 0
|
数据可视化 C# Python
C#基于ScottPlot进行可视化
C#基于ScottPlot进行可视化
174 1
|
人工智能 定位技术 图形学
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
581 1
|
消息中间件 网络协议 Kafka
docker安装zk和kafka实战笔记
docker安装zk和kafka实战笔记
238 0
docker安装zk和kafka实战笔记
WAT测试介绍
本文只要介绍芯片WAT的测试环境,测试结构,测试机台,测试标准,测试项目以及测试的意义。
WAT测试介绍
|
Java 数据库 Nacos
spring-gateway基于数据库 + nacos 的动态路由
spring-gateway基于数据库 + nacos 的动态路由
299 0