IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Mycat2.0搭建主从教程 -> 正文阅读

[系统运维]Mycat2.0搭建主从教程

mysql 配置主从关系这里不写了,这里只说mycat部分

mycat官网地址:http://www.mycat.org.cn/

1. mycat也需要mysql数据库,在主节点上新建一个mycat数据库

2. 安装Mycat2.0,下载安装包

http://dl.mycat.org.cn/2.0/

centos系统中下载jar包和zip包:

#下载jar包
wget http://dl.mycat.org.cn/2.0/1.22-release/mycat2-1.22-release-jar-with-dependencies-2022-4-27.jar

#下载zip安装文件
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip

#下载后解压zip
unzip mycat2-install-template-1.21.zip

# 修改tar包壳bin/ 目录下所有文件的权限
chmod 777 mycat/bin/*

# 复制 Mycat 2 所需依赖 jar 到 mycat 的 lib 文件夹
cp mycat2-1.22-release-jar-with-dependencies-2022-4-27.jar mycat/lib/

3. 配置 Mycat 原型库的数据源(datasource)信息

cd /home/papis/mycat2/mycat/conf/datasources
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
}

4. 添加 master_slave 数据库的数据源信息,我这里配置的是两主两从,可以根据自己需要配置

cp prototypeDs.datasource.json master01.datasource.json
cp prototypeDs.datasource.json master02.datasource.json
cp prototypeDs.datasource.json slave01.datasource.json
cp prototypeDs.datasource.json slave02.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 master01.datasource.json

如果只配一个主节点,不需要再写如下配置

{
    "dbType":"mysql",
    "idleTimeout":60000,
    "initSqls":[],
    "initSqlsGetConnection":true,
    // 数据库读写类型。在数据库集群时,Mycat 对主节点都是可读可写的
    "instanceType":"READ_WRITE",
    "maxCon":1000,
    "maxConnectTimeout":3000,
    "maxRetryCount":5,
    "minCon":1,
    // 数据源名称。在后面配置数据库集群时会用到
    "name":"master02",
    // 数据库密码
    "password":"123456",
    "type":"JDBC",
    // 主节点数据库连接
    "url":"jdbc:mysql://192.168.10.81: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
}

vim slave02.datasource.json

如果只有一个从节点,不需要再写如下配置,如果有多个从节点,可以配多份

{
    "dbType":"mysql",
    "idleTimeout":60000,
    "initSqls":[],
    "initSqlsGetConnection":true,
    // READ数据库只读写类型。在数据库集群时,Mycat 对从节点都是只读的
    "instanceType":"READ",
    "maxCon":1000,
    "maxConnectTimeout":3000,
    "maxRetryCount":5,
    "minCon":1,
    // 数据源名称。在后面配置数据库集群时会用到
    "name":"slave02",
    // 数据库密码
    "password":"123456",
    "type":"JDBC",
    // 从节点数据库连接
    "url":"jdbc:mysql://192.168.10.81:3307/papis_cloud?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
    // 数据库用户
    "user":"root",
    "weight":0
}

5. 配置 master_slave 数据源的集群(cluster)信息

cd /home/papis/mycat2/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",
        "master02"
    ],
    "replicas":[
        // 从节点数据源名称
        "slave01",
        "slave02"
    ],
    "maxCon":200,
    // 集群名称。在后面配置物理库(schema)时会用到
    "name":"master-slave",
    //查询负载均衡策略
    "readBalanceType":"BALANCE_ALL_READ",
    // NOT_SWITCH(不进行主从切换)、SWITCH(进行主从切换)
    "switchType":"NOT_SWITCH"
}

重点说一下几个配置参数:

readBalanceType: 查询负载均衡策略

BALANCE_ALL(默认值)
获取集群中所有数据源
BALANCE_ALL_READ
获取集群中允许读的数据源
BALANCE_READ_WRITE
获取集群中允许读写的数据源,但允许读的数据源优先
BALANCE_NONE
获取集群中允许写数据源,即主节点中选择

---

switchType: 主从切换设置
NOT_SWITCH:不进行主从切换
SWITCH:进行主从切换

6. 配置物理库(schema)和 Mycat 中数据源/数据源集群的关系

cd /home/papis/mycat2/mycat/conf/schemas
vim master_slave.schema.json

{
    // 物理库
    "schemaName": "papis_cloud",
    // 指向集群,或者数据源
    "targetName": "master-slave",
    // 这里可以配置数据表相关的信息,在物理表已存在或需要启动时自动创建物理表时配置此项
    "normalTables": {}
}

vim master_slave2.schema.json

如果只对外暴露一个数据库,此处不需要写

{
    // 物理库
    "schemaName": "nacos_config",
    // 指向集群,或者数据源
    "targetName": "master-slave",
    // 这里可以配置数据表相关的信息,在物理表已存在或需要启动时自动创建物理表时配置此项
    "normalTables": {}
}

7. 修改 Mycat 登录用户信息

cd /home/papis/mycat2/mycat/conf/users
vim root.user.json

{
    "dialect":"mysql",
    // ip 为 null,允许任意 ip 登录
    "ip":null,
    //登录密码
    "password":"papis-passw0rd",
    "transactionType":"xa",
    //登录账户
    "username":"root"
}

8. Mycat 服务端口等信息根据情况修改,此处不修改

cd /home/papis/mycat2/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"
        }
    }
}

9. 启动 Mycat

./bin/mycat start

# 查看状态
./bin/mycat status
# 停止
./bin/mycat stop
# 暂停
./bin/mycat pause
# 重启
./bin/mycat restart
# 前台运行
./bin/mycat console
# 查看日志文件
tail -f ./logs/wrapper.log

10. 测试读写分离

# 登录mycat
mysql -u root -P8066 -h 127.0.0.1 -p

# 查看数据库
show databases

# 进入库
use xxx

# 查询数据
select * from xxx;

# 开启和提交事务
begin;
commit;
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 16:08:03  更:2022-05-01 16:09:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:41:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码