MyCat使用概述

MyCat简介

MyCat 是一个分布式数据库中间件。主要解决了多数据源和数据分库分表、读写分离等问题。目前,如果项目存在读写分离或者多数源一般来说,两种解决方案:

  • 读写分离:
    读写分离,简单来说,就是配置两个MySQL实例,一个进行实例进行读操作,另一个实例进行写操作。当数据添加到写库上时候,读库会自动从写库上同步数据。
  • 分库分表:
    分库分表主要是指数据库的切分方式。一般来说,有两种切分方式,横向切分和竖直切分。

方案一:

直接在Java代码中配置多数据源,一个数据源操作一个库。但是这种方式弊端很明显:
1、需要在Java中做判断,每一个数据库操作都要判断,麻烦。
2、Java代码中做判断,存在大量非业务相关的代码,例如查询过滤、查询结果合并、查询结果排序等操作都需要使用Java代码实现。

当引入MyCat分布式数据库中间件之后,这些操作就可以统一交给MyCat去处理,Java代码又可以专注于业务逻辑了。

方案二:

使用数据库中间件:这种方案是目前的主流的方案。
在这里插入图片描述
引入MyCat之后,Java就不需要直接操作MySQL了,而是直接操作MyCat,但是操作MyCat就和操作MySQL是一样的。当我们的数据实现了分库分表之后,MyCat会自动的进行读写分离的路由,也会进行请求数据的合并、排序、过滤等操作,Java代码只需要专注于业务逻辑即可。

有了MyCat,MySQL 的性能真正的可以和Oracle相媲美了,但是MyCat并非只支持MySQL、也支持Oracle、MSSQL等数据库。

MyCat 安装

首先我们要使用MyCat之前,是要先搭建数据库的读写分离,没有搭建好数据库分离的朋友们,请先看小编的MySQL 读写分离环境搭建(主从复制)这篇文章。

这里,小编就先介绍MyCat的安装详情了。
1、首先,我们先选择读写分离数据库中的一个,进行安装,这里小编就选择主机上面进行安装了。
由于MyCat运行环境是需要安装JDK,没有安装JDK的朋友,请看小编Linux系列的Linux系统介绍–基础软件安装(五),在这里小编就不做介绍了。

2、下载MyCat

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

3、下载后,我们对下载好的包,进行解压:

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

4、解压成功后,会出现一个mycat 目录,进入mycat/conf 目录,对 mycat 进行配置:
首先我们来配置 schema.xml 文件:
在这里插入图片描述

  • 说明:
    1、首先在 schema 中指定逻辑库的名字,逻辑库是指的MyCat中的库,这个库不存储数据,数据存储在MySQL中的物理库中。
    2、逻辑库中配置逻辑表,配置逻辑表时,需要指定 dataNode 节点,dataNode 就是指数据库存储的位置。
    3、配置 dataNode,dataNode 指定 dataHost 和物理库的名字。
    4、dataHost 则配置MySQL 的主机和从机的位置,登录密码等。主机和从机都可以配置多个。

5、配置完schema.xml 之后,接下来配置server.xml。
在这里插入图片描述
server.xml 中主要配置MyCat的登录用户名和密码,以及需要操作的逻辑库。

6、配置完成后,我们在mycat目录下,创建一个logs的文件夹:

mkdir logs

创建后,进去logs目录,创建一个mycat.pid 文件

vim mycat.pid

编辑如下:保存退出!!!
在这里插入图片描述
7、配置完成后,接下来就可以启动MyCat 了,在mycat目录下进行启动:

./bin/mycat start

我们可以通过 jps 命令进行查看是否启动:
在这里插入图片描述
看到这里便是启动成功了。

8、启动成功后,我们就可以在本地连接MyCat了,连接方式和连接 MySQL 的方式一样,唯一区别就是在于端口不同:

在这里小编使用的时 Navicat 连接:
在这里插入图片描述
9、连接成功后,我们在MyCat 的窗口中,执行如下命令,进行表的创建:

CREATE TABLE book(id INTEGER PRIMARY KEY,name VARCHAR(255))

执行命令后,我们会发现物理库中出现了相应的表:
在这里插入图片描述
接下来,我们手动的向各个物理库中的物理表中存储一条数据,然后再 MyCat 窗口中查询:

  而我们可以从MyCat中查询到三个库中的所有表中的数据(必须是在MyCat的配置文件中配置的表的数据。)
在这里插入图片描述
在这里,小编对MyCat概述就讲述到这里,如果有什么疑问或者好的提议,请留言,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值