数据库中间件之Mycat

2.1 Mycat下载

Mycat下载可以到官网下载也可以到github上下载
下载路径:
官方网站: http://www.mycat.org.cn/
github地址 https://github.com/MyCATApache

2.2 Mycat安装

MyCat安装,需要安装jdk

2.2.1 上传并解压

把MyCat的压缩包上传到linux服务器,并且解压
cd /opt/work 切换目录
tar -zxvf Mycat-server-1.4-linux.tar.gz 解压
在这里插入图片描述

2.2.2 启动

/opt/work/mycat/bin/mycat start 启动
/opt/work/mycat/bin/mycat stop 停止
/opt/work/mycat/bin/mycat restart 重启

2.2.3 连接

可以使用MySQL自带的客户端进行连接,也可以使用可视化软件进行连接
mycat的默认的账号和密码都是test
客户端连接
mysql -h 10.211.55.12 -u test -p -P 8066
在这里插入图片描述
可视化工具连接
在这里插入图片描述
注意:可以使用mysql的客户端直接连接mycat服务。默认服务端口为8066

第三节 Mycat分片配置

将指定的一张表分片进行存储,比如存储到三个数据节点上
内容 说明
test 用户密码是test
db1, db2 可访问的schema有db1,db2
true 是否只读
11111 连接上限,降级权值。
1 是否开启加密。

3.1 创建三个数据库,准备表

使用一台服务器模拟分片操作,创建三个数据库分别命名
db_mycat_1
db_mycat_2
db_mycat_3
ip地址:10.211.55.12

3.2 MyCat配置文件说明

3.2.1 Server.xml介绍

server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
常用标签
user标签
内容:
说明用户名是test。
子标签:
property,privileges
property标签
在这里插入图片描述
privileges标签
对用户的 schema以及表进行精细化的DML权限控制。
check表示是否开启DML权限检查。默认是关闭。
check表示是否开启DML权限检查。默认是关闭。 server.dtd文件中 `` 说明可以有多个schema的配置。
dml顺序说明:
insert,update,select,delete

db1的权限是update,select。
db1的权限是update,select。
tb01的权限是啥都不能干。
db1的权限是update,select。
tb01的权限是啥都不能干。
tb02的权限是insert,update,select,delete。
db1的权限是update,select。
tb01的权限是啥都不能干。
tb02的权限是insert,update,select,delete。
其他表默认是udpate,select。
system标签
utf8 字符集
1 处理线程数量,默认是cpu数量。
4096 每次读取留的数量,默认4096。
409600 创建共享buffer需要占用的总空间大小,processorBufferChunkprocessors100。
0默认为0。0表示DirectByteBufferPool,1表示ByteBufferArena。
100二级共享buffer是processorBufferPool的百分比,这里设置的是百分比。
100全局ID生成方式。(0:为本地文件方式,1:为数据库方式;2:为时间戳序列方式;3:为ZK生成ID;4:为ZK递增ID生
成。
1是否开启mysql压缩协议。1为开启,0为关闭,默认关闭。
4 指定 Mysql 协议中的报文头长度。默认 4。
16M指定 Mysql 协议可以携带的数据最大长度。默认 16M。
1800000指定连接的空闲超时时间。某连接在发起空闲检查下,发现距离上次使用超过了空闲时间,那么这个连接会
被回收,就是被直接的关闭掉。默认 30 分钟,单位毫秒。
3前端连接的初始化事务隔离级别,只在初始化的时候使用,后续会根据客户端传递过来的属性对后端数据库连接进
行同步。
默认为 REPEATED_READ,设置值为数字默认 3。
READ_UNCOMMITTED = 1;
READ_COMMITTED = 2;
REPEATED_READ = 3;
SERIALIZABLE = 4;
300SQL 执行超时的时间,Mycat 会检查连接上最后一次执行 SQL 的时间,若超过这个时间则会直接关闭这连接。
默认时间为 300 秒,单位秒。
1000
清理 NIOProcessor 上前后端空闲、超时和关闭连接的间隔时间。默认是 1 秒,单
位毫秒。
300000 对后端连接进行空闲、超时检查的时间间隔,默认是 300 秒,单位毫秒。
10000对后端所有读、写库发起心跳的间隔时间,默认是 10 秒,单位毫秒。
0.0.0.0mycat 服务监听的 IP 地址,默认值为 0.0.0.0。
8066定义 mycat 的使用端口,默认值为 8066。
9066定义 mycat 的管理端口,默认值为 9066。
5.6mycat 模拟的 mysql 版本号,默认值为 5.6 版本,如非特需,不要修改这个值,目前支持设置 5.5,5.6,5.7 版本,
其他版本可能会有问题。
0 是否开启实时统计。1为开启;0为关闭 。
0是否开启全局表一致性检测。1为开启;0为关闭
0分布式事务开关。0为不过滤分布式事务;1为过滤分布式事务;2 为不过滤分布式事务,但是记录分布式事务日志。
65535默认是65535。 64K 用于sql解析时最大文本长度
以上举例的属性仅仅是一部分,可以配置的变量很多,具体可以查看SystemConfig这个类的属性内容。
System标签下的属性,一般是上线后,需要根据实际运行的情况,分析后调优的时候进行修改。
Firewall标签
顾名思义,这个就是关于防火墙的设置,也就是在网络层对请求的地址进行限制,主要是从安全角度来保证Mycat不
被匿名IP进行访问

3.2.2 Schema.xml介绍

Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及
DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。
schema 标签用于定义MyCat实例中的逻辑库
Table 标签定义了MyCat中的逻辑表
dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。
dataHost 标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳
语句。
注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。
在MySQL的配置文件中my.cnf 位置在etc目录下[mysqld] 中增加一行
lower_case_table_names = 1

3.2.3 rule.xml

rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表
使用相同的算法但具体的参数不同。
这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function。

发布了20 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41426763/article/details/102534008