Mycat 常用配置文件,配置灵活,能应用于场景很多,建议根据应用场景去记忆,要理解!
接上一篇:企业实战_03_MyCat下载、安装、启动
https://gblfy.blog.csdn.net/article/details/100049304
文章目录
- 一、Mycat目录说明
- 二、Mycat常用的配置文件
- 2.1. 配置3剑客
- 2.2. Mycat 2个配置1步走
- 三、server.xml
- 3.1. system标签及样例
- 3.2. user 标签
- 3.3. 对一个逻辑库有访问权限
- 3.4. 对多个逻辑库有访问权限
- 3.5. 对指定库的表的权限
- 3.6. 源文件
- 四、schema.xml
- 4.1. 节点说明
- 4.2. 样例
- 4.3. 举个栗子:
- 五、rule.xml
- 5.1.文件用途
- 5.2. 企业样例
- 5.3. 举个栗子
一、Mycat目录说明
目录 | 说明 |
---|---|
bin | mycat命令,启动、重启、停止等 |
conf | Mycat 配置信息 |
lib | Mycat引用的jar包,Mycat是java开发的 ,用户密码加密的jar也在这 |
logs | 日志文件,包括Mycat启动的日志和运行的日志 |
catlet | catlet为Mycat的一个扩展功能 |
二、Mycat常用的配置文件
- Mycat的配置文件都在conf目录里面:
2.1. 配置3剑客
文件 | 说明(用途) |
---|---|
server.xm | ①系统相关参数②用户访问权限③SQL防火墙及SQL拦截功能 |
schema.xml | ①主机节点 ②数据节点③逻辑库④逻辑表⑤自增ID⑥规则算法名称 |
rule.xml | ① 规则类②算法③Mycat分片(分库分表) |
2.2. Mycat 2个配置1步走
- 全局自增id 场景
- 2配置指需要配置2个文件
- 1步走指的是需要执行一条插入语句设置自增规则
文件 | 说明 |
---|---|
dbseq.sql | Mycat全局自增id,初始化表结构 |
sequence_db_conf.properties | 全局增id的表及数据节点 |
三、server.xml
3.1. system标签及样例
标签 | 说明 |
---|---|
<system></system> | 配置MyCat系统参数 key value形式 |
样例
<system><!-- 定义mycat对外提供的服务的端口 --><property name="${key}">${value}</property></system>
举个栗子:
<system><!-- 定义mycat对外提供的服务的端口 --><property name="serverPort">8066</property></system>
3.2. user 标签
标签 | 说明 |
---|---|
<user></user> | 配置MyCat的访问用户及权限 |
<!-- mycat用户 --><user defaultAccount="true" name="app_imooc"><!-- 密码加密需要添加此设置 --><property name="usingDecrypt">1</property><!-- 密码 --><property name="password">bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==</property><!-- 逻辑库名 --><property name="schemas">imooc_db</property></user>
3.3. 对一个逻辑库有访问权限
3.4. 对多个逻辑库有访问权限
逻辑库有多个请采取以下配置
<!-- mycat用户 --><user defaultAccount="true" name="app_imooc"><!-- 密码加密需要添加此设置 --><property name="usingDecrypt">1</property><!-- 密码 --><property name="password">bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==</property><!-- 多个逻辑库名,用“”,“”分割即可 --><property name="schemas">imooc_db,imooc_db01,imooc_db02</property></user>
3.5. 对指定库的表的权限
3.6. 源文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE serverSYSTEM 'server.dtd'>
<mycat:server xmlns:mycat="http://io.mycat/"><system><!-- 定义mycat对外提供的服务的端口 --><property name="serverPort">8066</property><!-- mycat管理端口 --><property name="managerPort">9066</property><!-- mycat登录是否需要验证0 验证1 不验证--><property name="nonePasswordLogin">0</property><!-- mycat对那台机器进行建通 监听所有 0.0.0.0监听指定机器 IP地址--><property name="bindIp">0.0.0.0</property><!-- 前端写队列的大小 --><property name="frontWriteQueueSize">2048</property><!-- 与数据库编码保持一致即可 --><property name="charset">utf-8</property><!-- mycat连接mysql的隔离级别 读未提交 1读已提交 2可重复读 3序列化读 4--><property name="txIsolation">2</property><!-- mycay进程数量 等于CPU核数 --><property name="processors">8</property><property name="idleTimeout">1800000</property><!-- 当sql执行超过多少秒后,mycat会对连接进行断开 单位秒 --><property name="sqlExecuteTimeout">300</property><property name="useSqlStat">0</property><property name="useGlobleTableCheck">0</property><property name="sequnceHandlerType">1</property><!-- mycat默认返回数据集的大小 这里设置100行--><property name="defaultMaxLimit">100</property><!-- mysql允许最大包的大小 --><property name="maxPacketSize">104857600</property></system><!-- mycat用户 --><user defaultAccount="true" name="app_imooc"><!-- 密码加密需要添加此设置 --><property name="usingDecrypt">1</property><!-- 密码 --><property name="password">bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==</property><!-- 逻辑库名 --><property name="schemas">imooc_db</property></user>
</mycat:server>
四、schema.xml
4.1. 节点说明
标签 | 说明 |
---|---|
schema | 配置逻辑库名 |
dataNode | 数据节点 |
dataHost | 物理主机节点 |
table | 逻辑表 |
4.2. 样例
<?xml version="1.0"?>
<!DOCTYPE schema SYSTEM 'schema.dtd'>
<mycat:schema xmlns:mycat="http://io.mycat/"><schema checkSQLschema="false" name="逻辑库名" sqlMaxLimit="100"><table dataNode="数据节点" name="逻辑表名" primaryKey="逻辑表主键" rule="规则名" /></schema><dataNode dataHost="主机节点" database="物理数据库名" name="数据节点名"/><dataHost balance="3" dbDriver="native" dbType="数据库类型" maxCon="1000" minCon="10" name="主机节点名" switchType="1" writeType="0"><heartbeat>select user()</heartbeat><writeHost host="物理IP地址" password="密码" url="物理IP地址:端口号" user="操作数据库用户"/></dataHost>
</mycat:schema>
4.3. 举个栗子:
<?xml version="1.0"?>
<!DOCTYPE schemaSYSTEM 'schema.dtd'>
<mycat:schema xmlns:mycat="http://io.mycat/"><schema checkSQLschema="false" name="imooc_db" sqlMaxLimit="100"><table dataNode="ordb" name="order_master" primaryKey="order_id"/></schema><dataNode dataHost="mysqlnode01" database="order_db" name="ordb"/><dataHost balance="3" dbDriver="native" dbType="mysql" maxCon="1000" minCon="10" name="mysqlnode03" switchType="1" writeType="0"><heartbeat>select user()</heartbeat><writeHost host="192.168.43.172" password="123456" url="192.168.43.172:3306" user="im_mycat"/></dataHost>
</mycat:schema>
五、rule.xml
5.1.文件用途
- 配置水平分片的分片规则:定义了表中使用哪一个标识来进行分片的
- 配置分片规则所对应的分片函数:具体实现分片函数的一个Java代码或者java的类
标签说明
标签 | 说明 |
---|---|
tableRule | 表规则名 |
columns | 规则字段 |
algorithm | 规则设置 |
function | 规则算法 |
property | 规则分片的数量 |
5.2. 企业样例
#标签配置值的分片规则
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/"><!-- 规则名:采用hash取模 4片 分片字段id --><tableRule name="hash-mod-4_id"><rule><!-- 分片列就是分片字段 --><columns>id</columns><!-- 算法名 --><algorithm>hash-mod-4</algorithm></rule></tableRule><!-- 具体应用的算法 --><function name="hash-mod-4" class="io.mycat.route.function.PartitionByHashMod" ><property name="count">4</property></function>
</mycat:rule>
- 标签制定标的分片列
- 指定分片算法,取的name属性
#配置标的分片算法
<!-- 具体应用的算法 --><function name="hash-mod-4" class="io.mycat.route.function.PartitionByHashMod" ><property name="count">4</property></function>
</mycat:rule>
- name 属性定义分片算法
- Class 属性指定分片算法实现类,必须是全类名
- property 属性指定分片个数
5.3. 举个栗子
下一篇:企业实战_05_MyCat用户密码加密
https://gblfy.blog.csdn.net/article/details/100056536