schema.xml
作为
MyCat
中最重要的配置文件之一
,
涵盖了
MyCat
的逻辑库 、 逻辑表 、 分片规
则、分片节点及数据源的配置。
主要包含以下三组标签:
schema
标签
datanode
标签
datahost
标签
4.1.1 schema标签
1). schema 定义逻辑库
![](https://img-blog.csdnimg.cn/a511a9a1aa474c599a85244b341f711b.png)
schema
标签用于定义
MyCat
实例中的逻辑库
,
一个
MyCat
实例中
,
可以有多个逻辑库
,
可以通
过
schema
标签来划分不同的逻辑库。
MyCat
中的逻辑库的概念,等同于
MySQL
中的
database
概念,
需要操作某个逻辑库下的表时
,
也需要切换逻辑库
(use xxx)
。
核心属性:
name
:指定自定义的逻辑库库名
checkSQLschema
:在
SQL
语句操作时指定了数据库名称,执行时是否自动去除;
true
:自动去
除,
false
:不自动去除
sqlMaxLimit
:如果未指定
limit
进行查询,列表查询模式查询多少条记录
2). schema 中的table定义逻辑表
![](https://img-blog.csdnimg.cn/4d10541fe4c2484aa214b25352699494.png)
table
标签定义了
MyCat
中逻辑库
schema
下的逻辑表
,
所有需要拆分的表都需要在
table
标签中定
义 。
核心属性:
name
:定义逻辑表表名,在该逻辑库下唯一
dataNode
:定义逻辑表所属的
dataNode
,该属性需要与
dataNode
标签中
name
对应;多个
dataNode
逗号分隔
rule
:分片规则的名字,分片规则名字是在
rule.xml
中定义的
primaryKey
:逻辑表对应真实表的主键
type
:逻辑表的类型,目前逻辑表只有全局表和普通表,如果未配置,就是普通表;全局表,配
置为
global
4.1.2 datanode标签
![](https://img-blog.csdnimg.cn/550f786ac32d4444962f027ae9184793.png)
核心属性:
name
:定义数据节点名称
dataHost
:数据库实例主机名称,引用自
dataHost
标签中
name
属性
database
:定义分片所属数据库
4.1.3 datahost标签
![](https://img-blog.csdnimg.cn/7c0e9e6aa19d41d78ddea782d104bd92.png)
该标签在
MyCat
逻辑库中作为底层标签存在
,
直接定义了具体的数据库实例、读写分离、心跳语句。
核心属性:
name
:唯一标识,供上层标签使用
maxCon/minCon
:最大连接数
/
最小连接数
balance
:负载均衡策略,取值
0,1,2,3
writeType
:写操作分发方式(
0
:写操作转发到第一个
writeHost
,第一个挂了,切换到第二
个;
1
:写操作随机分发到配置的
writeHost
)
dbDriver
:数据库驱动,支持
native
、
jdbc
4.2 rule.xml
rule.xml
中定义所有拆分表的规则
,
在使用过程中可以灵活的使用分片算法
,
或者对同一个分片算法
使用不同的参数
,
它让分片过程可配置化。主要包含两类标签:
tableRule
、
Function
。
![](https://img-blog.csdnimg.cn/c622e9a856794cd0a00b849660fe1300.png)
4.3 server.xml
server.xml
配置文件包含了
MyCat
的系统配置信息,主要有两个重要的标签:
system
、
user
。
1). system标签
主要配置MyCat中的系统配置信息,对应的系统配置项及其含义,如下:
![](https://img-blog.csdnimg.cn/cd2cc3bd54c247939397eec5ba4b6802.png)
![](https://img-blog.csdnimg.cn/dca8117493bd4dfc9a0e65149ce32c8f.png)
![](https://img-blog.csdnimg.cn/83d3bf3c73624d078932d699e4960f71.png)
![](https://img-blog.csdnimg.cn/258fa1404af241c8a1aeafb0718b8147.png)
![](https://img-blog.csdnimg.cn/12ff6c6445f04fdb99d5153fe4da9691.png)
2). user标签
配置
MyCat
中的用户、访问密码,以及用户针对于逻辑库、逻辑表的权限信息,具体的权限描述方式及配置说明如下:
![](https://img-blog.csdnimg.cn/6bc9793ae9524a83b17995cab51883ba.png)
在测试权限操作时,我们只需要将
privileges
标签的注释放开。 在
privileges
下的
schema
标签中配置的
dml
属性配置的是逻辑库的权限。 在
privileges
的
schema
下的
table
标签的
dml
属性
中配置逻辑表的权限。
、
♥️关注,就是我创作的动力
♥️点赞,就是对我最大的认可
♥️这里是小刘,励志用心做好每一篇文章,谢谢大家