MyCat教程【安装及配置介绍】

您所在的位置:网站首页 现代java服务端开发核心技术之分布式数据库中间件mycat入门 MyCat教程【安装及配置介绍】

MyCat教程【安装及配置介绍】

2023-10-03 18:55| 来源: 网络整理| 查看: 265

本文我们来介绍下MyCat的安装和相关的配置文件的介绍

一、安装MyCat

1.安装准备环境

1.1 安装JDK

 因为mycat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK是必须的。

20191016095730697.png

1.2 放开相关端口

 在主从节点上都放开对端口3306的访问,或者直接关闭防火墙。

# 临时关闭 service iptables stop service iptables start # 永久关闭 chkconfig iptables on chkconfig iptables off # 查看防火墙状态 service iptables status

1.3 root账号

 mycat是我们的数据库中间件,那么mycat必然要能够访问对应的主从数据库,所以在主从数据库中我们需要分别创建访问的账号。

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;

2.安装mycat

2.1 下载安装软件

官网地址:http://www.mycat.io/

20191016100048202.png

2.2 上传解压安装

 将下载的文件上传到/usr/local目录下,并解压

20191016100412235.gif

2.3 目录介绍

 解压后的目录结构如下:

20191016100505145.png

目录描述bin目录里是启动脚本conf目录里是配置文件catlet为 Mycat 的一个扩展功能lib目录里是 Mycat 和它的依赖 jarlogs目录里是 console.log 用来保存控制台日志,和 mycat.log 用来保存 mycat 的 log4j日志

二、相关配置文件介绍

 Mycat的架构其实很好理解,Mycat是代理,Mycat后面就是物理数据库。和Web服务器的 Nginx类似。对于使用者来说,访问的都是 Mycat,不会接触到后端的数据库。

20191016101858935.png

注意:MyCat的主要配置文件都在conf目录下。我们给大家来介绍下介个核心的配置文件

配置文件说明server.xmlMyCat 的配置文件,设置账号、参数等schema.xmlMyCat 对应的物理数据库和数据库表的配置rule.xmlMyCat 分片(分库分表)规则

2.1 server.xml

0 0 2 0 0 1 1m 1k 0 384m true 123456 TESTDB user TESTDB true

system标签中设置的是系统级别的相关参数,参考源文件中的注释即可能看懂,初始默认即可

user标签是我们要注意的地方。 Mycat 中的用户,用户可以访问的逻辑库,可以访问的逻辑表,服务的端口号等

说明:上面的默认的配置表示 创建的有两个用户root和user账号

 root 账号,密码是123456,对应的逻辑库是 TESTDB

 user 账号,密码是user,对应的逻辑库是 TESTDB,权限是只读

注释掉的privileges 表示root用户的操作权限

参数说明事例dmlinsert,update,select,delete0000

2.2 schema.xml

schema.xml 是最主要的配置文件,首先看默认的配置文件

select user()

2.2.1 主要节点介绍

 在配置文件中可以定义读写分离,逻辑库,逻辑表,dataHost,dataNode 等信息.

节点描述schema配置逻辑库,name 与 server.xml 中 schema 对应dataNode定义数据节点的标签,也就是分库相关配置dataHost物理数据库,真正存储数据的数据库

2.2.2.1 schema

属性name

逻辑库名称

属性checkSQLschema

是否检测 SQL 语法中的 schema 信息. 如: Mycat 逻辑库名称 A, dataNode 名称 B SQL : select * from A.table; checkSQLschema 值是 true, Mycat 发送到数据库的 SQL 是 select * from table; checkSQLschema 只是 false,Mycat 发送的数据库的 SQL 是 select * from A.table;

属性sqlMaxLimit

Mycat 在执行 SQL 的时候,如果 SQL 语句中没有 limit 子句.自动增加 limit 子句. 避免一次 性得到过多的数据,影响效率. limit子句的限制数量默认配置为100.如果 SQL中有具体的 limit 子句,当前属性失效. SQL : select * from table . mycat 解析后: select * from table limit 100 SQL : select * from table limit 10 . mycat 不做任何操作修改.

标签 table

定义逻辑表的标签

属性 name

逻辑表名

属性 dataNode

数据节点名称. 即物理数据库中的 database 名称.多个名称使用逗号分隔.

属性 rule

分片规则名称.具体的规则名称参考 rule.xml 配置文件.

2.2.2.2 dataNode

属性 name

数据节点名称, 是定义的逻辑名称,对应具体的物理数据库 database

属性 dataHost

引用 dataHost 标签的 name 值,代表使用的物理数据库所在位置和配置信息.

属性 database

在 dataHost 物理机中,具体的物理数据库 database 名称.

2.2.2.3 dataHost

属性 name

定义逻辑上的数据主机名称

属性 maxCon/minCon

最大连接数, max connections 最小连接数, min connections

属性 dbType

数据库类型 : mysql 数据库

属性 dbDriver

数据库驱动类型, native,使用 mycat 提供的本地驱动.

dataHost 子标签 writeHost

写数据的数据库定义标签. 实现读写分离操作.

属性 host

数据库命名

属性 url

数据库访问路径

属性 user

数据库访问用户名

属性 password

访问用户密码

writeHost 子标签 readHost

属性 host

数据库命名

属性 url

数据库访问路径

属性 user

数据库访问用户名

属性 password

2.3 rule.xml

 用于定义分片规则的配置文件。mycat 默认的分片规则: 以 500 万为单位,实现分片规则.逻辑库 A 对应 dataNode - db1 和 db2. 1-500 万保存在 db1 中, 500 万零 1 到 1000 万保存在 db2 中,1000 万零 1 到 1500 万保存在 db1 中.依次类推.

id func1 user_id func1 sharding_id hash-int id rang-long id mod-long id murmur id crc32slot create_time partbymonth calldate latestMonth id rang-mod id jump-consistent-hash 0 2 160 2 partition-hash-int.txt autopartition-long.txt 3 8 128 24 yyyy-MM-dd 2015-01-01 partition-range-mod.txt 3

简化版

id mod-long 3

由上我们可以发现在rule.xml文件中,核心的标签就两个tableRule 和function,我们分别来介绍下

2.3.1 tableRule

 是用来声明table的分片规则的,相关属性及标签的含义如下

截屏2021-12-03 上午10.25.32.png

algorithm 使用 function 标签中的 name 属性。连接表规则和具体分片算法。 table 标签内使用。让逻辑表使用这个规则进行分片

2.3.2 function

 指定分片规则的算法的具体实现

节点描述name指定算法的名字class制定分片算法具体的类名字property为具体算法需要用到的一些属性



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3