Mycat概述及基本使用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 Oracle 前端开发
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
快速学习 MyCat-简介-MyCat 的使用场合及下载
233 0
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
|
6月前
|
SQL 存储 关系型数据库
04MyCat - MyCat概述
04MyCat - MyCat概述
55 0
|
12月前
|
XML 负载均衡 关系型数据库
Mycat中间件配置初探与入门操作
Mycat中间件配置初探与入门操作
70 1
|
存储 缓存 负载均衡
MyCat是干什么的?具体如何使用?底层原理是什么?
MyCat是干什么的?具体如何使用?底层原理是什么?
212 0
|
SQL 存储 分布式计算
MyCat:第三章:Mycat概述
MyCat:第三章:Mycat概述
274 0
|
Java 关系型数据库 MySQL
MyCat:第五章:快速入门
MyCat:第五章:快速入门
173 0
MyCat:第五章:快速入门
|
存储 安全 中间件
MyCat:第四章:Mycat中的概念
MyCat:第四章:Mycat中的概念
|
缓存 负载均衡 监控
MyCat-案例概述 | 学习笔记
快速学习 MyCat-案例概述
71 0
MyCat-案例概述 | 学习笔记
|
存储 NoSQL 安全
MyCat-简介-MyCat 引入 | 学习笔记
快速学习 MyCat-简介-MyCat 引入
88 0
MyCat-简介-MyCat 引入 | 学习笔记
|
存储 Java 中间件
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
快速学习 MyCat-入门-环境搭建-MyCat 安装
127 0
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记

相关实验场景

更多