MyCat配置文件

2023-11-06

1)MyCat 配置文件简介 

Mycat的架构其实很好理解,Mycat是代理,Mycat后面就是物理数据库。和 Web 服务器的 Nginx 类似。

对于使用者来说,访问的都是Mycat,不会接触到后端的数据库。我们现在做一个主从、读写分离。

 结构如下图:

Mycat 的配置文件都在 conf 目录里面,

 这里介绍下面几个常用的配置文件 server.xml、schema.xml、rule.xml 

 1. server.xml 

进入到 mycat 的 conf 目录查看 server.xml 文件:

使用 cat 命令查看 server.xml 文件内容

 <user name="root">

    <property name="password">user</property>

    <property name="schemas">user</property>

    <!-- 表级 DML 权限设置 -->

    <!--

        <privileges check="false>

            <schema name="TESTDB" dml="0110">

                <table name="tb01" dml="0000"></table>

                <table name="tb02" dml="1111"></table>

            </schema>

        </privileges>

    -->

</user>

<user>

    <property name="password">user</property>

    <property name="schemas">TESTDB</property>

    <property name="readonly">true</property>

</user>

 1)配置 MyCat 服务信息  

 如:Mycat 中的用户,用户可以访问的逻辑库,可以访问的逻辑表,服务的端口号等

标签 释义
user 用户配置节点
name 登录的用户名,也就是连接MyCat的用户名
password 登录的密码,也就是连接MyCat的密码
schemas

逻辑库名,这里会和schema.xml中的配置关联,多个用逗号分开,

例如需要这个用户管理两个数据库db1, db2,则配置db1, db2

privileges 配置用户针对表的增删改查的权限

 默认配置了一个账号root密码是123456,针对数据库TESTDB,读写权限都有,没有针对表做任何特殊的权限。

2)配置权限

权限 内容 权限码
dml Insert、update、select、delete 0000

dml权限顺序为:insert(新增),update(修改),select(查询),delete(删除),0000--> 1111,0为禁止权限,1为开启权限。

2. schema.xml 

 使用 cat 命令查看 schema.xml 文件

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

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <table name="t_user" dataNode="dn1,dn2,dn3" rule="crc32slot" />
    </schema>
    <dataNode name="dn1" dataHost="localhost1" database="db1" />
    <dataNode name="dn2" dataHost="localhost1" database="db2" />
    <dataNode name="dn3" dataHost="localhost1" database="db3" />    
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">    
        <heartbeat>select user()</heartbeat>    
        <writeHost host="hostM1" url="localhost:3306" user="root" password="root">    
             <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="root" />    
        </writeHost>    
    </dataHost>   
</mycat:schema>

 1)用于定义 逻辑库 和 逻辑表 的配置文件

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

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

3. rule.xml 

 用于定义分片规则的配置文件. 

mycat 默认的分片规则: 以500万为单位,实现分片规则. 

逻辑库A 对应 dataNode-db1 和 db2. 

1-500万保存在db1中, 500万零1到1000万保存在db2中,1000万零1到1500万保存在db1中.依次类推.

 <tableRule name="rule1">

    <rule>

        <column>id</column>

        <algorithm>func1</algorithm>

    </rule>

</tableRule>

1)tableRule

标签 释义
name 属性指定唯一的名字,用于标识不同的分片规则。内嵌的rule标签则指定对物理表中的哪一列进行拆分和使用什么分片算法
columns 指定要拆分的列名字
algorithm 使用function标签中的name属性。连接表规则和具体分片算法。table标签内使用。让逻辑表使用这个规则进行分片

2)function

 <function name="func1" class="io.mycat.route.function.partitionByLong">

    <property name="partitionCount">8</property>

    <property name="partitionLength">128</property>

</function>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyCat配置文件 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • WIN10中端口被占用,如何杀死该进程

    查看端口情况 netstat ano findstr lt 端口号 gt 杀死该进程 taskkill PID lt 进程号 gt F
  • M1芯片,PS2022版真的来了。Photoshop 2022 for Mac中文版介绍&安装教程,支持Monterey系统

    Adobe Photoshop 2022是一款非常实用的图形处理工具 在 ps 2022 mac中轻松创建报价图形的功能 使用预设模板 大量自定义和酷炫动画选项为您的照片添加励志名言或个性化信息 PS一直以来都被广泛的应用于平面设计 创意合
  • Esp8266智能配网代码(arduino)

    文章概述 我用的是Esp8266 12F NodeMCU开发板 配网用安信可微信公众号 的在线配网页面 把代码贴出来并解释一下 很高兴帮到和我一样的人 解析代码 程序目录 App 主程序 action 活动相关操作 btn 按钮相关操作 l
  • poj1240 Pre-Post-erous!

    照例先上题目 1 Pre Post erous 查看 提交 统计 提问 总时间限制 1000ms 内存限制 65536kB 描述 We are all familiar with pre order in order and post or
  • 微信记录怎么恢复?恢复已删除微信历史记录的4种方式

    恢复已删除微信历史记录的4种方式 如何在有 没有备份的情况下在 iPhone 和 Android 上恢复旧的或已删除的微信历史记录 如聊天对话 语音消息 照片 图片和视频剪辑 参考本指南 祝您成功恢复微信数据 关于微信数据恢复 说真的 微信
  • 【CVPR2022 BoostMIS 论文笔记】自适应伪标记和信息主动标注的医学图像半监督学习

    目录 摘要 1 Introduction 目的 贡献 3 Method 3 1 公式化符号 3 2 医学图像任务模型 3 3 基于一致性的自适应标签传播器 3 4 对抗性不稳定选择器 3 5 平衡不确定性选择器 3 6 训练算法 4 实验
  • Springboot + Vue ElementUI 实现MySQL&&Postgresql可视化

    一 功能展示 PostgreSQL教程 实现类似于MySQL的show create table功能实现见末尾 效果如图 DB连接配置维护 Schema功能 集成Screw生成文档 导出库的表结构 导出表结构和数据 表对象操作 翻页查询 查
  • Mybatis快速入门

    目录 MyBatis简介 MyBatis基于xml的快速入门 1 案例准备 2 引入依赖 3 编写全局配置文件 4 编写持久层接口的映射文件 5 编写测试类 MyBatis基于注解的快速入门 MyBatis简介 MyBatis 是一个优秀的
  • nodejs安装及环境配置

    一 下载 安装 1 下载node js 下载地址 Node js 2 安装 2 1选择Node js runtime 2 2这里不用选择安装其他的插件 如果选择会消耗2 3g流量的 2 3安装完成 3 检查是否安装成功 3 1 node v
  • C语言——时间制转换

    C语言 写一个程序 要求用户输入24小时制的时间 然后显示12小时制的时间 首先我们得搞清楚24小时制和12小时制之间的差异 从上步的差异中 我们得到规律 整理思路 并完成代码 考虑到代码的健壮性和实用性 考虑可能会遇到的问题 比如用户输入
  • 时间序列——季节系数法

    注 参考司守奎老师的数学建模与算法书籍 在数学建模问题中 有很多类问题具有 季节性特点 类似于不同蔬菜在一年四季中的价格变化 季节性服装在一年四季的价格变化等 对于季节性时间序列的预测 可以采用 季节系数法 来预测时间序列的变化趋势 在时间
  • 【python 1】python 基础

    文章目录 一 格式化输出 1 占位符 2 拼接输出 3 message 输出 4 format 输出 二 input 输入 三 pass break 四 字符串 五 列表 六 元组 七 字典 八 集合 一 格式化输出 1 占位符 s str
  • 文件读写的理论

    为了提高效率 稍微复杂一些的操作系统对文件的读写都是带缓冲的 Linux当然也不例外 所谓缓冲 就是操作系统为最近刚读写的文件内容在内核保留一份副本 以便当再次需要已经缓冲存储在副本中的内容时就不必再临时从设备上读入 而需要写的时候则可以先
  • Jmeter-使用http proxy代理录制脚本

    Jmeter 使用http proxy代理录制脚本 第1步 打卡jmeter工具新增1个线程组 第2步 给线程组添加1个HTTP请求默认值 第3步 设置下HTTP请求默认值第4步 在工作台中新增1个 HTTP代理服务器 第5步 设置HTTP
  • c语言中weak用法,c语言中weak的作用

    c语言中weak的作用 转载参考至 https blog csdn net q251900 在u boot源码中看到 weak关键字 在移植过程中遇到了问题 用例 weak在不同的环境中用法不同 在stm32源码中也比较常见 在u boot
  • BeanCreationException: Error creating bean with name ‘org.springframework.web.servlet.mvc.method.ann

    BeanCreationException Error creating bean with name org springframework web servlet mvc method annotation ExceptionHandl
  • 测试中

    root ubu blockchain2 ll total 44 drwx 5 root root 4096 Aug 4 09 48 drwxr xr x 23 root root 4096 Jul 26 11 26 rw r r 1 ro
  • MVC模式实现学生信息管理

    MVC全名是Model View Controller 是模型 model 视图 view 控制器 controller 的缩写 一种软件设计典范 用一种业务逻辑 数据 界面显示分离的方法组织代码 将业务逻辑聚集到一个部件里面 在改进和个性
  • Markdown表格-换行、合并单元格

    文章目录 1表格中对其 换行处理 1 1 一般我们都会这样用表格如下 1 2 当然这里也可以通过设置 左对齐 右对齐 1 3 实现表格内容换行 2 合并表格 2 1 合并表格行 2 2 合并表格列 2 3 综合实例 1表格中对其 换行处理
  • MyCat配置文件

    1 MyCat 配置文件简介 Mycat的架构其实很好理解 Mycat是代理 Mycat后面就是物理数据库 和 Web 服务器的 Nginx 类似 对于使用者来说 访问的都是Mycat 不会接触到后端的数据库 我们现在做一个主从 读写分离