百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Mycat入门

moboyou 2025-03-26 11:43 14 浏览


一、Linux系统下搭建Mycat


注:如果没有服务器可以选择虚拟机进行操作


1、首先准备好服务器或者虚拟机


2、安装和配置MySQL数据库


2.1、删除原来的数据库



//查询已安装的mariadb
[root@wcy ~]# rpm -qa|grep mariadb                  
mariadb-libs-5.5.56-2.el7.x86_64 //文件名
//卸载mariadb,文件名为上述命令查询出来的文件
[root@wcy ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64


2.2、下载与安装MySQL


a、安装MySQL官方的yum repository



[root@wcy ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm



b、下载rpm包



[root@wcy ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm



c、安装MySQL服务

如果是centos8

首先执行:



yum module disable mysql



[root@wcy ~]# yum -y install mysql-community-server



d、启动MySQL服务



[root@wcy ~]# systemctl start  mysqld.service


查看启动状态



[root@localhost ~]# systemctl status mysqld.service


安装完成!


2.3、配置MySQL

a、mysql的几个相关命令



重启:systemctl restart mysqld.service
关闭:systemctl stop mysqld.service


配置开机启动



[root@wcy ~]# systemctl enable mysqld
[root@wcy ~]# systemctl daemon-reload


b、配置文件默认路径



配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid


c、修改root密码



 grep 'temporary password' /var/log/mysqld.log



首次通过初始密码登录后,使用以下命令修改密码

mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY'你的root密码';


d、重新载入



mysql> flush privileges;



e、远程访问



GRANT ALL ON *.* TO'root'@'%' IDENTIFIED BY '你的密码'; //只有执行了


注意:如果是阿里云用户注意开放3306或相关端口

f、mysql安装之后默认的字符集是latin,我们修改为UTF-8。可以使用status命令查看。



mysql> status;




输入命令:vim /etc/my.cnf



在最下方追加



[client]
default-character-set =  utf8
[mysqld]
character-set-server=utf8
lower_case_table_names = 1
[mysql]
default-character-set=utf8



重启MySQL



systemctl restart mysqld.service



3、安装jdk1.8


3.1、安装方式一


安装命令:



yum install -y java-1.8.0-openjdk.x86_64



查询jdk版本


命令:



java -version



3.2、安装方式二


a、下载环境,JDK安装包

https://www.oracle.com/java/technologies/javase-jdk16-downloads.html


https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html


推荐安装11


https://www.oracle.com/java/technologies/javase-jdk11-downloads.html


这里我下载的是Linux x64 Compressed Archive,可以根据自己的环境自行下载


b、在/usr/local/下创建java目录



[root@mycat2 local]# mkdir java
[root@mycat2 local]# chmod 777 java


c、使用ftp链接服务器并把下载的安装包上传至java目录


d、进入到java目录,解压上传文件






tar -zxvf +需要解压的包名
[root@mycat2 java]# tar -zxvf jdk-16.0.2_linux-x64_bin.tar.gz


e、编辑配置文件,配置环境变量,vim /etc/profile进入编辑状态,在打开的文件最后面加上如下代码:



JAVA_HOME=/usr/local/java/jdk-16.0.2
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH



f、重新加载配置文件,输入:



source /etc/profile



g、最后一步,查看安装情况

输入:



java -version




输入:



javac



4、mycat下载地址


http://dl.mycat.org.cn/1.6-RELEASE/

http://www.mycat.org.cn/

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


4.1、服务器下载wget



wget http://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz



4.2、解压


tar -zxvf  Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz


4.3、启动



[root@mycat2 mycat]# ./mycat/bin/mycat




[root@mycat2 mycat]# ./mycat/bin/mycat
Usage: ./mycat/bin/mycat { console | start | stop | restart | status | dump }
#控制台|启动|停止|重启|状态|转储
#执行命令的方式
./mycat/bin/mycat +操作
#控制台:
./mycat/bin/mycat console 
#启动:
./mycat/bin/mycat start
#停止:
./mycat/bin/mycat stop 
#重启:
./mycat/bin/mycat restart 
#状态:
./mycat/bin/mycat status 
#转储:
./mycat/bin/mycat dump




4.4、测试



[root@mycat2 mycat]# ./mycat/bin/mycat console



二、Mycat核心概念详解


1、数据库中间件可以被当作一个或多个数据库集群构成的逻辑库。


数据库中间件可以以多租户的形式为一个或多个应用提供服务,每个应用访问的可能是一个独立或者共享的物理库,如图:



2、逻辑表


既然有逻辑库,就会有逻辑表。在分布式数据库中,对于应用来说,读写数据的表就是逻辑表。逻辑表可以分布在一个或多个分片库中,也可以不分片。


2.1、分片表


分片表是将指数据量很大的表切分到多个数据库实例中,所有分片组合起来构成了一张完整的表。例如在Mycat上配置t_node的分片表,数据按照规则被切分到dn1、dn2两个节点。


2.2、非分片表


并非所有的表在数据量很大时都需要进行分片,某些表可以不用分片。非分片表是相对于分片表而言的不需要进行数据切分的表。如下配置中的t_node只存在于节点dn1上。


2.3、ER表


关系型数据库是基于实体关系模型(Entity Relationship Model)的,Mycat中的ER表便来源于此。基于此思想,Mycat提出了基于E-R关系的数据分片策略,子表的记录与其所关联的父表的记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据关联查询不会跨库操作。

表分组(Table Group)是解决跨分片数据关联查询的一种很好的思路,也是数据切分的一条重要规则。


2.4、全局表


在一个真实的业务场景中往往存在大量类似的字典表,这些字典表中的数据变动不频繁,而且数据规模不大,很少有超过数十万条的记录。


当业务表因为规模进行分片后,业务表与这些附属的字典表之间的关联查询就成了比较棘手的问题,所以在Mycat中通过数据冗余来解决这类表的关联查询,即所有分片都复制了一份数据,我们把这些冗余数据的表定义为全局表。


数据冗余是解决跨分片数据关联查询的一种很好的思路,也是数据切分规划的另一条重要规则。


3、Mycat原理介绍


Mycat 原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对SQL语句做了一些特定的分析,例如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL语句发往后端的真实数据库,并将返回的结果做适当处理,最终再返回给用户,如图:



如图,Orders表被分为三个分片节点dn1、dn2、dn3,它们分布在两台MySQL Server(dataHost)上,即datanode=database@datahost,因此你可以用1~N台服务器来分片,分片规则(sharding rule)为典型的字符串枚举分片规则,一个规则的定义是分片字段(sharding column)+分片函数(rule function)。这里的分片字段为prov,分片函数则为字符串枚举方式。

相关推荐

Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录

首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...

Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用

一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...

Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用

原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...

FILTER函数介绍及经典用法12:FILTER+切片器的应用

EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...

office办公应用网站推荐_office办公软件大全

以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...

WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!

办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...

收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程

原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...

Excel函数公式教程(490个实例详解)

Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...

Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!

工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...

Excel中的SCAN函数公式,把计算过程理清,你就会了

Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...

Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效

在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...

Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!

在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...

Excel新版本,IFS函数公式,太强大了!

我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...

Excel不用函数公式数据透视表,1秒完成多列项目汇总统计

如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...