在互联网的业务中,随着业务数据越来越多,那么就会涉及到分库分表的操作。但是现如今对于真是的业务来说,一般能不分库分表就不要实施分库分表的操作。所以现如今对于数仓的要求也比较多,很多数仓数据库存储已经天然的可以解决分库分表的场景,例如我们前面介绍的Doris或者Polardb等。但是对于这块的话,毕竟对于企业来说,实施这个技术带来的成本很高,因此分库分表的场景还是存在的。这里我们介绍下常用的Mycat数据库中间件,这是一个在实际场景中使用范围非常广的数据库中间件。随着这个系列的描述及演示,相信大家很快可以学会Mycat的使用及分库分表的业务场景。
Mycat是什么
mycat根据官网的解释,他是一个java语言编写的Mysql数据库网络协议的开源中间件,遵循GPLv3协议开源。
Mycat的特点有哪些
根据官网的介绍Mycat的特点有如下几条:
一、优化查询计划
定制Calcite分布式查询引擎、编译SQL到关系代数表达式、规则优化引擎和代价优化引擎、生成物理执行计划、支持逻辑视图
二、SQL支持语法
任意跨库跨表join查询、支持跨库跨表非关联子查询、支持跨库跨表关联子查询、支持跨库跨表Window语法、支持全局二级索引、有限支持存储过程、支持可视化配置
三、高性能
支持并行拉取结果集、支持自动调动后端结果集、支持多种路由注释、优化器注释
四、优化
对请求的sql进行参数化、缓存物理执行计划、相同参数化sql的请求、将免去一些分析优化过程
五、支持原生协议
前端协议MySQL网络通信协议、MySQL原生网络协议异步非阻塞、JDBC接口支持多种数据库、生成物理执行计划
六、支持定制任意多字段路由
提供分片算法接口、优化器简化过滤条件、分片信息与关系表达式结合生成执行sql
Mycat的官网
mycat的官网地址是:mycat官网。
Mycat安装详细教程
这里我们介绍下这篇文章的主题,即Mycat的安装教程。这里现在Mycat已经发展到mycat2的版本了,因此这里我们使用的演示也是mycat2的。
一、准备一个mysql
mycat既然是一个数据库中间件,因此这个组件也会有自己的元数据信息,所有的元数据信息是存储在mysql上的,因此这里我们首先需要一个mysql,详细的mysql安装可以参考《centos如何使用docker安装mysql?》。同时我们需要在这个mysql上创建一个账户并且授权有所有的权限,此处为了演示,我们直接使用root账号。
二、下载Mycat
mycat的下载地址是:mycat官网下载。在这里我们可以需要下载两个文件,分别是install的文件,地址在:mycat-install下载。我们下载最新的1.21版本即可。
然后我们还需要一个dependence,由于我们的install下载的是1.21,因此dependence也跟着版本一起,地址在:mycat-denpendence下载。这里我们下载一个最新版本即可。
三、安装mycat
下载完了之后,我们把这两个文件上传到服务器上,并且解压,首先解压安装文件。
解压后我们可以看到一个mycat文件夹,点击进去之后,可以看到里面的bin,conf等目录。
然后我们把dependence文件放到这个lib文件夹下
接着我们修改下配置文件,修改的文件在: ${mycat_home}/conf/datasources里面的这个prototypeDs.datasource.json文件
这个文件里面我们只需要修改下数据库的信息即可,这里我们使用第一步准备的mysql
这里配置文件就修改好了。
接着我们进入到${mycat_home}/bin目录下,这里默认的所有文件都没有执行权限,因此首先我们进行授权。
chmod 777 mycat chmod 777 wrapper-linux*
授权后就可以看到这几个文件有执行权限了。
接着我们启动下mycat。启动命令是:
./mycat start
这里就启动起来了。
四、测试mycat
启动成功之后,我们就需要把mycat给测试一下,打开navicat。连接这个mycat。这里以我的演示为例:
地址:192.168.31.10 端口:8066 #这个端口是mycat默认提供的端口 用户名:root 密码:123456
此时连接上去之后,我们就可以看到mycat显示的数据库信息。
这里我们可以直接像操作mysql一样的操作这个mycat,例如创建一个名为school的数据库
然后我们就可以通过这个mycat查看到有一个school的数据库
到此为止,mycat的单机版按照教程就完毕了。
备注:
1、这里我们回到准备的数据库上,可以看到有一个mycat的数据库
这里就是存储mycat元数据的。里面只有2张表
2、这里我们使用mycat配置的是准备的数据库,因此这里的话,我们创建的school数据库会在准备的mysql上看到。
还没有评论,来说两句吧...