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{} */