首页 > 系统相关 >Centos7 MyCat2 安装部署

Centos7 MyCat2 安装部署

时间:2023-02-14 16:57:51浏览次数:62  
标签:部署 数据源 MyCat2 配置 mycat Centos7 集群 mysql 数据库

部署MyCat2 之前需要搭建好数据库的主从,详看文档:mysql  主次数据库搭建
官网:http://www.mycat.org.cn/
官方文档: https://www.yuque.com/ccazhw/ml3nkf?
源码地址: https://github.com/MyCATApache/Mycat2

软件介绍

Mycat2是Mycat社区开发的一款分布式关系型数据库(中间件)。它支持分布式SQL查询,兼容MySQL通信协议,以Java生态支持多种后端数据库,通过数据分片提高数据查询处理能力。

原理

Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用Mycat 还是 MySQL。

资源列表

一、下载安装

  1. 下载程序包和Jar包,解压mycat2-install-template-1.21.zip,把下载好的mycat2-1.21-release-jar-with-dependencies.jar放到解压文件里面的mycat2-install-template-1.21\mycat\lib文件夹下面

img

  1. 上传至linux,把整合好的文件夹mycat拷贝到 linux 下 /usr/local/
    img

  2. 修改文件夹及以下文件的权限修改成最高权限,否则运行启动命令时,会因权限不足而报错
    img

  3. 配置说明
    mycat2 的配置都在conf文件夹下,如下图
    img
    简单说明一下各个文件夹:
    users文件夹:这个配置的是mycat2客户端的账户密码
    datasources文件夹:配置的是跟数据库连接情况,这边的账号密码都是需要数据库的账号密码
    clusters文件夹:有关集群的配置
    schemas文件夹:逻辑库表,有关分表分库的配置
    这个配置后续都会用到,这边先了解一下

二、启动

1 在mycat连接的mysql数据库里添加用户

CREATE USER 'mycat'@'%' IDENTIFIED BY '123456';
--必须要赋的权限mysql8才有的
GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';
---视情况赋权限
GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;
flush privileges;

建议首次配置使用数据库的root账号,这样的话如果启动有异常,就可以排除mysql账号问题,等稳定了再切换mycat账号。
下面都是以mysql的root账号为例。

2、修改mycat的prototype的配置

启动mycat之前需要确认prototype数据源所对应的mysql数据库配置,修改对应的user(用户),password(密码),url中的ip

vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123123",
"type":"JDBC",
"url":"jdbc:mysql://192.168.200.51:3306/mydb1?useUnicode=true&serverTimezone=Asi
a/Shanghai&characterEncoding=UTF-8",
"user":"root",
"weight":0
}

说明:这边的name既可以为数据库名称也可以是集群名称。

3、验证数据库访问情况

Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。

mysql -uroot -p123456 -h 192.168.200.51 -P 3306
mysql -uroot -p123456 -h 192.168.200.53 -P 3306

如远程访问报错,请建对应用户

grant all privileges on *.* to root@'缺少的host' identified by '123123';

4、启动mycat

linux启动命令

cd /usr/local/mycat/bin
./mycat start
./mycat status
./mycat start 启动
./mycat stop 停止
./mycat console 前台运行
./mycat install 添加到系统自动启动(暂未实现)
./mycat remove 取消随系统自动启动(暂未实现)
./mycat restart 重启服务
./mycat pause 暂停
./mycat status 查看启动状态…

如果没有报错,就说明启动正常了。

5 登录Mycat2后台管理窗口

登录Mycat2管理维护客户端

mysql -umycat -p123456 -P 9066

img

常用命令如下:

show databases;

img

help;

img

登录Mycat2数据客户端

mysql -umycat -p123456 -P 8066

img

后端程序连接数据库时,不再直接连接数据库,而是改为使用Mycat2数据客户端,也就是说换成连接8066这个数据客户端
我们为可以直接使用Navicat来连接Mycat2数据客户端
img

说明:这边的账号密码是users文件夹配置的账号密码,不是数据库的账号密码,不要搞错了

img

6 配置文件说明

1、服务(server):服务相关配置

所在目录 mycat/conf 默认配置即可

img

2、用户(user): 配置MyCat客户端用户相关信息

所在目录: mycat/conf/users

img

参数说明:

#ip:客户端访问ip,建议为空,填写后会对客户端的ip进行限制
# username:用户名
# password:密码
# isolation:设置初始化的事务隔离级别
    READ_UNCOMMITTED:1
    READ_COMMITTED:2
    REPEATED_READ:3,默认
    SERIALIZABLE:4
# transactionType:事务类型
    可选值:
    proxy 本地事务,在涉及大于 1 个数据库的事务,commit 阶段失败会导致不一致,但是兼容性最好
    xa 事务,需要确认存储节点集群类型是否支持 XA可以通过语句实现切换
    set transaction_policy = 'xa'
    set transaction_policy = 'proxy' 可以通过语句查询
    SELECT @@transaction_policy

3、数据源(datasource):配置Mycat连接的数据源信息

所在目录 mycat/conf/datasources

img

#字段含义
# dbType:数据库类型,mysql
# name:用户名
# password:密码
# type:数据源类型,默认 JDBC
# url:访问数据库地址
# idleTimeout:空闲连接超时时间
# initSqls:初始化sql
# initSqlsGetConnection:对于 jdbc 每次获取连接是否都执行 initSqls
# instanceType:配置实例只读还是读写
    可选值:READ_WRITE,READ,WRITE
#weight :负载均衡权重
# 连接相关配置
"maxCon": 1000,
"maxConnectTimeout": 3000,
"maxRetryCount": 5,
"minCon": 1,

4、集群(cluster):配置集群信息

所在目录 mycat/conf/clusters

img

#字段含义
# clusterType:集群类型
    可选值:
    SINGLE_NODE:单一节点
    MASTER_SLAVE:普通主从
    GARELA_CLUSTER:garela cluster/PXC 集群
    MHA:MHA 集群
    MGR:MGR 集群
# readBalanceType:查询负载均衡策略
    可选值:
    BALANCE_ALL(默认值)
    获取集群中所有数据源
    BALANCE_ALL_READ    
    获取集群中允许读的数据源
    BALANCE_READ_WRITE
    获取集群中允许读写的数据源,但允许读的数据源优先
    BALANCE_NONE
    获取集群中允许写数据源,即主节点中选择
# switchType:切换类型
    可选值:
    NOT_SWITCH:不进行主从切换
    SWITCH:进行主从切换

5、逻辑库表(schema):配置逻辑库表,实现分库分表

所在目录 mycat/conf/schemas

vim mycat/conf/schemas/mydb1.schema.json
#库配置
{
    "schemaName": "mydb",
    "targetName": "prototype"
}
# schemaName:逻辑库名
# targetName:目的数据源或集群
targetName自动从prototype目标加载test库下的物理表或者视图作为单表,prototype必须是mysql服务器

#单表配置
{
    "schemaName": "mysql-test",
    "normalTables": {
    "role_edges": {
    "createTableSQL":null,//可选
    "locality": {
    "schemaName": "mysql",//物理库,可选
    "tableName": "role_edges",//物理表,可选
    "targetName": "prototype"//指向集群,或者数据源
    }
}

标签:部署,数据源,MyCat2,配置,mycat,Centos7,集群,mysql,数据库
From: https://www.cnblogs.com/shiding/p/17118877.html

相关文章

  • kubeadm的部署+Dashboard+以及连接私有仓库 Harbor
    一、kubeadm部署K8S集群架构主机名IP地址安装组件master(2C/4G,cpu核心数要求大于2)192.168.10.10docker、kubeadm、kubelet、kubectl、flannenode01(2C/2G)1......
  • MyCat2 读写分离
    已经搭配好的主从数据库分别为:主:192.168.200.51:3306从:mysql://192.168.200.53:3306一.登录数据客户端,创建逻辑库,配置数据源createdatabasedatacenter;此时会在......
  • 【opencv c++】实现yolov5部署onnx模型完成目标检测
    总代码#include<fstream>#include<sstream>#include<iostream>#include<opencv2/dnn.hpp>#include<opencv2/imgproc.hpp>#include<opencv2/highgui.hpp>usin......
  • 使用 nginx 容器部署前端项目并实现负载
    运行nginx镜像1.拉取镜像dockerpullnginx2.运行dockerrun-it--namemynginx-p8080:80-dnginx-t:在新容器内指定一个伪终端或终端。-i:允许你对容器......
  • ELK ElasticFlow数据流分析图和部署
     一、ELKElasticFlow介绍和分析图1、ElasticFlow的目的ElasticFlow利用sFlow等技术来收集网络中有关流量的信息,集流量收集、分析、报告于一体,深入了解流量与带宽的占用情......
  • k8s集群部署(centos)
    k8s集群部署-centos一、docker配置1.安装docker略2.修改docker配置对Docker的配置做一点修改,在“/etc/docker/daemon.json”里把cgroup的驱动程序改成systemd,然......
  • centos7下远程图形化浏览器解决方案
    背景:越来越多的项目会首选linux作为基础系统,一般情况下客户提供的都是没有图像化的linux,但有些配置需要通过浏览器来修改并查看(比如nacos,roketmq-admin等),因此便需要centos......
  • 云原生时代顶流消息中间件Apache Pulsar部署实操-上
    @目录安装运行时Java版本推荐LocallyStandalone集群启动验证部署分布式集群部署说明初始化集群元数据部署BookKeeper部署BrokerAdmin客户端和验证TieredStorage(层级存储......
  • Win部署MySQL5.7
    Win部署MySQL5.7压缩包安装参考引用连接即可如果机器中部署多个MySQL,则应当合理配置系统服务和my.ini服务环境变量MYSQL57_HOMED:\ProgramFiles\mysql-5.7.39-......
  • window环境下docker部署elasticsearch单机
     一、部署elasticsearch单机拉取elasticsearch的镜像,我拉取的是8.6.0版本的dockerpullelasticsearch:8.6.0创建三个文件夹config、data和plugins用于挂载路径,如下......