MyCAT2 入门到实战(二)


4. 【掌握】MyCAT2配置文件介绍

4.1 用户(user)

配置文件位置/usr/local/mycat/conf/users/{用户名}.user.json。这个配置文件主要是用来配置MyCAT的登录用户的,也就是我们连接8066这个端口的用户信息。

{
    "dialect": "mysql",
    "ip": null,
    "password": "123456",
    "transactionType": "proxy",
    "username": "root",
    "isolation": 3
}
# 配置说明
1)dialect:数据库(方言)类型
2)ip:配置白名单使用,一般写null 如果要限制这个用户
3)password:配置MyCAT用户的密码(明文)
4)isolation:设置初始化的事务隔离级别
    READ_UNCOMMITTED:1
    READ_COMMITTED:2
    REPEATED_READ:3
    默认SERIALIZABLE:4
5)transactionType默认值:
    proxy(本地事务,在涉及大于1个数据库的事务,commit阶段失败会导致不一致,但是兼容性最好)
    可选值:xa(事务,需要确认存储节点集群类型是否支持XA) |

4.2 数据源(datasource)

作用:配置MyCAT连接后端的物理库的数据源。

配置文位置:/usr/local/mycat/conf/datasources/{数据源名字}.datasource.json

{
    "dbType": "mysql",
    "idleTimeout": 60000,
    "initSqls": [],
    "initSqlsGetConnection": true,
    "instanceType": "READ_WRITE",
    "maxCon": 1000,
    "maxConnectTimeout": 3000,
    "maxRetryCount": 5,
    "minCon": 1,
    "name": "prototype",
    "password": "root123",
    "type": "JDBC",
    "url": "jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&serverTimezone=UTC",
    "user": "root",
    "weight": 0,
    "queryTimeout": 30
}
配置说明
    1)dbType:数据源类型
    2)name:数据源名字
    3)password:后端MySQL的密码
    4)url:后端MySQL的JDBC连接地址 
    5)user:后端MySQL的用户名
    6)weight:配置数据源负载均衡的使用权重

4.3 逻辑库与逻辑表(logicaltable)

作用:配置MyCAT里面和MySQL对应的逻辑表。

配置位置:mycat/conf/schemas/{库名}.schema.json

{
    "customTables": {},
    "globalTables": {},
    "normalTables": {},
    "schemaName": "test",
    "shardingTables": {},
    "targetName": "prototype"
}

配置说明
1)customTables:自定义表
2)globalTables:全局表
3)normalTables:默认表
4)schemaName:库名
5)shardingTables:分片表
6)targetName:数据源名,也可以是集群名

4.4 序列号(sequence)

作用:使用序列号的分片表,对应的自增主键要在建表SQL中体现。

配置位置: /usr/local/mycat/conf/sequences/{数据库名字}_{表名字}.sequence.json(后面细说)。

4.5 服务器(server)

这个是针对MyCAT的服务器的配置,一般情况下默认就行了,不用怎么配置。

5. 【掌握】MyCAT2注释配置

5.1 重置配置

/*+ mycat:resetConfig{} */

5.2 用户相关

5.2.1 创建用户

/*+ mycat:createUser{
    "username":"user",
    "password":"",
    "ip":"127.0.0.1",
    "transactionType":"xa"}
*/

5.2.2 删除用户

/*+ mycat:dropUser{ "username":"user"} */

5.2.3 显示用户

/*+ mycat:showUsers */

5.3 数据源相关

5.3.1 创建数据源

/*+ mycat:createDataSource{
    "dbType":"mysql",
    "idleTimeout":60000,
    "initSqls":[],
    "initSqlsGetConnection":true,
    "instanceType":"READ_WRITE",
    "maxCon":1000,
    "maxConnectTimeout":3000,
    "maxRetryCount":5,
    "minCon":1,
    "name":"dc1",
    "password":"root123",
    "type":"JDBC",
    "url":"jdbc:mysql://127.0.0.1:3306?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8",
    "user":"root",
    "weight":0}
*/

5.3.2 删除数据源

/*+ mycat:dropDataSource{
    "dbType":"mysql",
    "idleTimeout":60000,
    "initSqls":[], 
    "initSqlsGetConnection":true,
    "instanceType":"READ_WRITE",
    "maxCon":1000,
    "maxConnectTimeout":3000,
    "maxRetryCount":5,
    "minCon":1,
    "name":"dc1",
    "type":"JDBC",
    "weight":0}
*/

5.3.3 显示数据源

/*+ mycat:showDataSources{} */

5.4 集群相关

5.4.1 创建集群

/*! mycat:createCluster{
    "clusterType":"MASTER_SLAVE",
    "heartbeat":{
        "heartbeatTimeout":1000,
        "maxRetry":3,
        "minSwitchTimeInterval":300,
        "slaveThreshold":0 
        },
        "masters":[  "dc1" //主节点 ],
        "maxCon":2000,
        "name":"c0",
        "readBalanceType":"BALANCE_ALL",
        "replicas":[  "dc2" //从节点 ],
        "switchType":"SWITCH"}
*/

5.4.2 删除集群

/*! mycat:dropCluster{ "name":"c0"} */

5.4.3 显示集群

/*+ mycat:showClusters{} */