MyCat-入门、配置

发布时间:2024年01月11日

MyCat入门

概念

? ? ? ?MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生(native)协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。

? ? ? ?MyCat是一个数据库中间件,可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在 。

  • 性能有瓶颈了,可以读写分离
  • 数据库容量有瓶颈了,可以分库分表

原理

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

安装MyCat

目录结构


bin:存放可执行文件,用于启动停止mycat
conf:存放mycat的配置文件
lib:存放mycat的项目依赖包(jar)
logs:存放mycat的日志文件

具体安装步骤

链接:https://pan.baidu.com/s/1rzaDhnFsUVaLN0gn0YOIEA?
提取码:khri?
这里面有安装步骤

链接:https://pan.baidu.com/s/1_r0OlkfUhUInCHn6-TmrIg?
提取码:li15?
这个里面是安装包以及依赖

启动服务


bin/mycat start #启动
bin/mycat stop #停止
mycat启动后,占用端口号8066
连接登录mycat
mysql -h 192.168.25.10 -p 8066 -u root -p

MyCat配置

分片配置文件主要是以下3个

  • schema.xml配置逻辑库、逻辑表、数据节点、节点主机
  • server.xml 配置mycat的用户及用户的权限信息
  • rule.xml分片规则

schema.xml配置文件

? ? ? ?schema.xml作为MyCat中最重要的配置文件之一,涵盖了MyCat的逻辑库、逻辑表、分片规则、分片节点以及数据源的配置

主要包含以下标签:
schema标签:定义逻辑库,一个mycat实例中,可以有多个逻辑库,等同于musql中的database? ? ? ? ? ? ? ? ? ? ? ? ? ? 概念,需要操作某个逻辑库下的表时,也需要切换逻辑库。?
核心属性:

  • name:指定自定义的逻辑库库名
  • checkSQLschema:在SQL语句操作时指定了数据库名称,执行时是否自动去除;ture:自动去除,false:不自动去除
  • sqlMaxLinit:如果未指定limit进行查询,列表查询模式查询多少条记录

table标签:定义了mycat逻辑库schema下的逻辑表,所有需要拆分的表都需要在table标签中定义? ? ? ? ? ? ? ? ? ? ?。
核心属性:

  • name:定义逻辑表表名,在该逻辑库下唯一
  • dataNode:定义逻辑表所属dataNode,多个dataNode逗号分隔?
  • rule:分片规则的名字,分片规则名字是在rule.xml中定义的
  • primaryKey:逻辑表对应真实表的主键
  • type:逻辑表的类型,目前逻辑表只有全局表和普通表,如果未配置,就是普通表;全局表,配置为global

datanode标签:定义了mycat中数据节点,一个datanode标签就是一个独立的数据分片
核心属性:

  • name:数据节点名称
  • datahost:主机名称
  • database:定义分片所属数据库

datahost标签:作为逻辑库中的底层标签,直接定义了具体的数据库实例、读写分离、心跳语句
核心属性:

  • name:唯一标识
  • maxCon/minCon:最大连接数/最小连接数
  • balance:负载均衡策略,取值0,1,2,3
  • writeType:写操作分发方式

? ? ? ? ? ? ? ? ? ?0:写操作转发到第一个writeHost,第一个挂了,切换到第二个
? ? ? ? ? ? ? ? ? ?1:写操作随机分发到配置的writeHost

  • dbDriver:数据库驱动,支持native、jdbc

rule.xml配置文件

? ? ? ?rule.xml配置文件定义所有拆分表的规则,在使用过程中可以灵活的使用分片算法,或者对同一个分片算法使用不同的参数,它让分片过程可配置化。主要包含两类标签:tableRule、Function(分片规则涉及到的java类以及参数配置)

MyCat-规则-CSDN博客在这篇里会具体讲到rule.xml配置文件中的分片规则。

server.xml配置文件


? ? ? ?包含了mycat的系统配置信息,主要有两个标签
? ? ? ? system标签:对应的系统配置项及其含义
? ? ? ? user标签:用户以及用户权限(就近原则,在设置权限时,以逻辑表的为主)


?

文章来源:https://blog.csdn.net/m0_56358507/article/details/135495153
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。