从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 新闻合订本
    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 新闻合订本
    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

    • Redis

    • Mybatis

    • Lucene

    • Elasticsearch

    • MQ

    • MyCat

      • MyCat2-尚硅谷
      • MyCat 是什么,为什么要用
      • 搭建环境
      • MyCat 概念
      • MyCat 的配置文件
        • MyCat 自身的配置(server)
        • 用户(user)
        • 数据源(datasource)
        • 集群(cluster)
        • 逻辑库表(schema)
      • 一主一从复制
      • 一主一从读写分离
      • 双主双从复制方案
      • 分库分表
      • MyCat安全设置
      • Mycat2-UI
    • Lombok

  • SpringMVC

  • SpringBoot

  • Java
  • 主流框架
  • MyCat
2023-06-28
目录

MyCat 的配置文件

# 40.MyCat 的配置文件

MyCat2 的配置非常简单,甚至可以通过命令的方式来修改配置。 ‍

# MyCat 自身的配置(server)

和服务相关的配置:/usr/local/mycat/conf/server.json,例如配置了端口号 8066,一些超时时间等,默认即可,这里不改动 ‍

# 用户(user)

主要是配置连接 MyCat 时的用户信息,文件所在地址 /usr/local/mycat/conf/users:

ll /usr/local/mycat/conf/users
总用量 4
-rw-r--r--. 1 root root 107 6月  14 20:55 root.user.json
1
2
3

‍ 命名方式:{用户名}.user.json,例如上面就是配置 root 用户。里面的内容 cat root.user.json:

{
	"dialect":"mysql",
	"ip":null,
	"password":"123456",
	"transactionType":"xa",
	"username":"root"
}
1
2
3
4
5
6
7

字段含义

  • ip:客户端访问 IP,建议为空,填写后只接受该 IP 的请求

  • username:用户名

  • password:密码

  • transactionType:事务类型,可选值:

    • proxy 本地事务,在涉及大于 1 个数据库的事务,commit 阶段失败会导致不一致,但是兼容性最好

    • XA 事务,需要确认存储节点集群类型是否支持 XA

    • 可以通过语句查询:SELECT @@transaction_policy;

    • 可以通过语句实现切换

      set transaction_policy = 'xa'

      set transaction_policy = 'proxy'

  • dialect:使用的数据库类型

  • isolation:可以加上这个设置,设置初始化的事务隔离级别。有如下取值:

    READ_UNCOMMITTED:1
    READ_COMMITTED:2
    REPEATED_READ:3,默认
    SERIALIZABLE:4
    
    1
    2
    3
    4

# 数据源(datasource)

配置 Mycat 连接的数据源信息,所在目录 mycat/conf/datasources 命名方式:{数据源名字}.datasource.json,例如:

ll /usr/local/mycat/conf/datasources
总用量 4
-rw-r--r--. 1 root root 445 6月  14 21:46 prototypeDs.datasource.json
1
2
3

‍ 我们可以看看里面的内容 cat prototypeDs.datasource.json:

{
	"dbType":"mysql",
	"idleTimeout":60000,
	"initSqls":[],
	"initSqlsGetConnection":true,
	"instanceType":"READ_WRITE",
	"maxCon":1000,
	"maxConnectTimeout":3000,
	"maxRetryCount":5,
	"minCon":1,
	"name":"prototypeDs",
	"password":"learnMycatPassword0520@",
	"type":"JDBC",
	"url":"jdbc:mysql://localhost:3306/learnMycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
	"user":"learnMycat",
	"weight":0
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

‍ 其实我们在搭建环境的时候,已经配置过相关内容了。字段含义

  • dbType:数据库类型,例如 MySQL。一般来说 MyCat 对 MySQL 的兼容性最好

  • name:数据源名字,一般和文件名里的一样

  • user:用户名

  • password:密码

  • type:数据源类型,默认 JDBC

  • url:访问数据库地址

  • idleTimeout:空闲连接超时时间

  • initSqls:初始化 sql

  • initSqlsGetConnection:对于 jdbc 每次获取连接是否都执行 initSqls

  • instanceType:配置实例只读还是读写。可选值:READ_WRITE,READ,WRITE

  • weight :负载均衡权重

  • 和连接相关的配置:

    • "maxCon": 1000,最大连接数
    • "minCon": 1,最小连接数
    • "maxConnectTimeout": 3000,超时时间
    • "maxRetryCount": 5,最大重试次数

以上这么多字段我们不用背,后续我们讲怎么新增数据源 ‍

# 集群(cluster)

所在目录 mycat/conf/clusters,命名方式:{集群名字}.cluster.json。例如:

ll /usr/local/mycat/conf/clusters/
总用量 4
-rw-r--r--. 1 root root 289 6月  14 20:55 prototype.cluster.json
1
2
3

里面的内容 cat prototype.cluster.json:

{
	"clusterType":"MASTER_SLAVE",
	"heartbeat":{
		"heartbeatTimeout":1000,
		"maxRetry":3,
		"minSwitchTimeInterval":300,
		"slaveThreshold":0
	},
	"masters":[
		"prototypeDs"
	],
	"maxCon":200,
	"name":"prototype",
	"readBalanceType":"BALANCE_ALL",
	"switchType":"SWITCH"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

‍ 可以配置的字段:

  • clusterType:集群类型,可选值:

    • SINGLE_NODE:单一节点
    • MASTER_SLAVE:普通主从
    • GARELA_CLUSTER:PXC 集群
    • MHA:MHA 集群
    • MGR:MGR 集群
  • masters:配置主节点

  • replicas:配置从节点

  • readBalanceType:查询负载均衡策略,可选值:

    • BALANCE_ALL(默认值),获取集群中所有数据源
    • BALANCE_ALL_READ,获取集群中允许读的数据源
    • BALANCE_READ_WRITE,获取集群中允许读写的数据源,但允许读的数据源优先
    • BALANCE_NONE,获取集群中允许写数据源,即主节点中选择
  • switchType:切换类型,可选值:NOT_SWITCH 不进行主从切换,SWITCH 进行主从切换

# 逻辑库表(schema)

配置逻辑库表,实现分库分表,所在目录 mycat/conf/schemas,命名方式:{库名}.schema.json,例如:

ll /usr/local/mycat/conf/schemas/
总用量 8
-rw-r--r--. 1 root root 5299 6月  14 20:55 mysql.schema.json
1
2
3

‍ 里面的内容很多,这里就不列出全部了。数据库配置:

{
    "schemaName": "mydb",
    "targetName": "prototype"
}
1
2
3
4

字段含义:

  • schemaName:逻辑库名
  • targetName:目的数据源或集群。targetName 自动从 prototype 目标加载 test 库下的物理表或者视图作为单表, prototype 必须是 mysql 服务器 ‍ 单表配置
{
    "schemaName": "mysql-test",
    "normalTables": {
        "role_edges": {
            "createTableSQL":null,//可选
            "locality": {
                "schemaName": "mysql",//物理库,可选
                "tableName": "role_edges",//物理表,可选
                "targetName": "prototype"//指向集群,或者数据源
            }
        }
    }
    .....
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

详细配置,后续讲分库分表时再说

上次更新: 2025/6/3 09:31:54
MyCat 概念
一主一从复制

← MyCat 概念 一主一从复制→

最近更新
01
新闻合订本 2025-10
10-31
02
2025 年 10 月记
10-30
03
用 AI 批量优化思源笔记排版
10-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式