mycat2 部署 主从Mariadb

mycat 对Mariadb支持还不够完美,目前测试貌似不会故障切换。 一主一从可以使用。但是并不能友好支持注释行命令,需要自行创建配置。

安装mycat2

下载地址

Index of /2.0/

需要下载两个文件

mycat2-install-template-1.21.zip
mycat2-1.22-release-jar-with-dependencies.jar

安装 把JAR移动到加压缩文件的lib下 并且给执行文件权限

chmod -R 777 mycat wrapper-linux-x86-32 wrapper-linux-x86-64 wrapper-linux-ppc-64 
 修改数据源 vim /usr/local/mycat/conf/database/prototypeDs.datasource.json
{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ_WRITE",
        "maxCon":1000,
        "maxConnectTimeout":3000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"prototypeDs",
        "password":"123456",
        "type":"JDBC",
        "url":"jdbc:mysql://192.168.10.30:3306/mycatdb?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
        "user":"root",
        "weight":0
}

启动

console 前端启动  start 后台启动

维护端口9006  内网访问

 使用端口8006

一主一从部署

 1. 逻辑库文件

链接mycat8066端口,创建逻辑库mydb1,则相应的配置文件会生成mydb1.schema.json,并且建立表test 字段 id  name用于测试。

vi /usr/local/mycat/conf/schemas/mydb1.schema.json

{
        "customTables":{},
        "globalTables":{},
        "normalProcedures":{},
        "normalTables":{
                "test":{
                        "createTableSQL":"CREATE TABLE `mydb1`.`test` (\n\t`id` INT NOT NULL,\n\t`name` VARCHAR(45) NULL,\n\tPRIMARY KEY (`id`)\n)",
                        "locality":{
                                "schemaName":"mydb1",
                                "tableName":"test",
                                "targetName":"mycluse"
                        }
                }
        },
        "schemaName":"mydb1",
        "shardingTables":{},
        "targetName":"mycluse", //这里是集群名,在集群配置文件中
        "views":{}
}
~

2. 集群文件

由于注释执行无法执行,(可能是 对Mariadb兼容不好?)。所以直接编辑配置文件。

vi /usr/local/mycat/conf/clusters/mycluse.cluster.json

{
        "clusterType":"MASTER_SLAVE",  //这里选择主从模式
        "heartbeat":{
                "heartbeatTimeout":1000,
                "maxRetry":3,
                "minSwitchTimeInterval":300,
                "slaveThreshold":0
        },
        "masters":[
                "rwSepr"        增加主服务,填写数据库名称
        ],
        "replicas":["rwSepw"],  增加副本,填写数据库名称
        "maxCon":2000,
        "name":"mycluse",         名字与逻辑库中填写的名字一致
        "readBalanceType":"BALANCE_ALL", 随机所有可读
        "switchType":"SWITCH"
}

3. 数据库实例文件

数据库集群已经搭建完毕,参考之前的文章。

vi /usr/local/mycat/conf/datasources/rwSepr.datasource.json

{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ_WRITE",    读 写 读写
        "maxCon":1000,
        "maxConnectTimeout":3000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"rwSepr",                名字,在上面集群中使用
        "password":"123456",
        "type":"JDBC",
        "url":"jdbc:mysql://192.168.10.30:3306/mydb1?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
        "user":"root",
        "weight":0
}

vi /usr/local/mycat/conf/datasources/rwSepw.datasource.json

与上面一致,只是数据库不同

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

主从测试

重启Mycat

./bin/mycat  console

分别 给数据库所在两台机器设置Hostname

hostnamectl set-hostname mariadb01

hostnamectl set-hostname mariadb02

 通过Mycat增加数据

 查看结果

 master 所在服务器是rwSepr  对应的数据库所在服务器hostname 是mariadb01

修改配置文件

mycluse.cluster.json  将rwSepr rwSepw数据源互换,也就是将写入操作的数据库互换。再次执行 插入hostname

 

 因为我的数据库是多主,所以可以随意切换,这里只作为测试一主一从使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值