MyCat2 安装与使用(一主一从,读写分离)
一、安装
参考官方文档即可:www.yuque.com/ccazhw/ml3n…
二、配置
进入MyCat2安装目录 eg: /data/mycat/
1、配置MyCat数据源信息
cd /data/mycat/conf/datasource
vim prototypeDs.datasource.json
{
// 数据库类型
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
// 数据库读写类型:READ、WRITE、READ_WRITE。Mycat 对数据库需要是可读可写的
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
// 数据源名称,这里不要修改
"name":"prototypeDs",
// 数据库密码
"password":"123456",
"type":"JDBC",
// 数据库连接
"url":"jdbc:mysql://192.168.10.80:3306/mycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
// 数据库用户
"user":"root",
"weight":0
}
2、添加master_slave数据库的数据源信息
cp prototypeDs.datasource.json master01.datasource.json
cp prototypeDs.datasource.json slave01.datasource.json
此处配置一主一从,如果是多主多从就创建多个master\slave.datasource.json
vim master01.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
// 数据库读写类型。在数据库集群时,Mycat 对主节点都是可读可写的
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
// 数据源名称。在后面配置数据库集群时会用到
"name":"master01",
// 数据库密码
"password":"123456",
"type":"JDBC",
// 主节点数据库连接
"url":"jdbc:mysql://192.168.10.80:3306/papis_cloud?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
// 数据库用户
"user":"root",
"weight":0
}
vim slave01.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
// READ数据库只读写类型。在数据库集群时,Mycat 对从节点都是只读的
"instanceType":"READ",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
// 数据源名称。在后面配置数据库集群时会用到
"name":"slave01",
// 数据库密码
"password":"123456",
"type":"JDBC",
// 从节点数据库连接
"url":"jdbc:mysql://192.168.10.80:3307/papis_cloud?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
// 数据库用户
"user":"root",
"weight":0
}
3、配置master_slave数据源的集群信息
cd /data/mycat/conf/clusters
注意:不要删除prototype.cluster.json,否则启动 Mycat 时会报错
cp prototype.cluster.json master-slave.cluster.json
vim master-slave.cluster.json
{
// 集群类型:SINGLE_NODE(单节点)、MASTER_SLAVE(普通主从)、GARELA_CLUSTER(garela cluster/PXC集群)等
"clusterType":"MASTER_SLAVE",
"heartbeat":{
"heartbeatTimeout":1000,
"maxRetry":3,
"minSwitchTimeInterval":300,
"slaveThreshold":0
},
"masters":[
// 主节点数据源名称(可配置多个,以,分割)
"master01"
],
"replicas":[
// 从节点数据源名称(可配置多个,以,分割)
"slave01"
],
"maxCon":200,
// 集群名称。在后面配置物理库(schema)时会用到
"name":"master-slave",
"readBalanceType":"BALANCE_ALL",
// NOT_SWITCH(不进行主从切换)、SWITCH(进行主从切换)
"switchType":"NOT_SWITCH"
}
4、配置物理库与Mycat中数据源/数据源集群关系
cd /data/mycat/conf/schemas
vim master_slave.schema.json
{
// 物理库
"schemaName": "papis_cloud",
// 指向集群,或者数据源
"targetName": "master-slave",
// 这里可以配置数据表相关的信息,在物理表已存在或需要启动时自动创建物理表时配置此项
"normalTables": {}
}
注意:如果要暴露多个物理库,就创建多个json文件
解释:物理库(schema),就是指主数据库中已经存在的数据库
5、修改Mycat登录信息
cd /data/mycat/conf/users
vim root.user.json
{
"dialect":"mysql",
// ip 为 null,允许任意 ip 登录
"ip":null,
//登录密码
"password":"papis-passw0rd",
"transactionType":"xa",
//登录账户
"username":"root"
}
6、修改Mycat服务端口等信息,此处可以不修改
cd /data/mycat/conf
vim server.json
{
"loadBalance":{
"defaultLoadBalance":"BalanceRandom",
"loadBalances":[]
},
"mode":"local",
"properties":{},
"server":{
"bufferPool":{
},
"idleTimer":{
"initialDelay":3,
"period":60000,
"timeUnit":"SECONDS"
},
"ip":"0.0.0.0",
"mycatId":1,
//启动端口
"port":8066,
"reactorNumber":8,
"tempDirectory":null,
"timeWorkerPool":{
"corePoolSize":0,
"keepAliveTime":1,
"maxPendingLimit":65535,
"maxPoolSize":2,
"taskTimeout":5,
"timeUnit":"MINUTES"
},
"workerPool":{
"corePoolSize":1,
"keepAliveTime":1,
"maxPendingLimit":65535,
"maxPoolSize":1024,
"taskTimeout":5,
"timeUnit":"MINUTES"
}
}
}
三、启动、停止Mycat
cd /data/mycat/bin
# 启动
sh mycat start
# 查看状态
sh mycat status
# 停止
sh mycat stop
# 暂停
sh mycat pause
# 重启
sh mycat restart
# 前台运行
sh mycat console
# 查看日志文件
tail -f /data/mycat/logs/wrapper.log
可以使用navicat以5、6步骤中信息连接测试