MySQL分库分表学习手记二(MyCat介绍、安装、入门)

MyCat介绍

Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。

开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。具体的分库分表的策略,只需要在MyCat中配置即可。

 

优势:

性能可靠稳定

强大的技术团队

体系完善

社区活跃

准备工作

Mycat是采用java语言开发的开源的数据库中间件,支持WindowsLinux运行环境,下面介绍MyCatLinux中的环境搭建。我们需要在准备好的服务器中安装如下软件

MySQLJDKMycat

三台测试机

1:10.168.5.183,安装JDK,Mycat,MySQL

2:10.168.5.193,安装MySQL

3:10.168.5.194,安装MySQL

MySQL安装步骤可以参考我的另一篇学习手记《Centos7中Mysql 8的安装手记

JDK安装

1:下载jdk-8u171-linux-x64.tar.gz包,并将改JDK包上传到临时目录下。

 2:将上传的压缩包进行解压,并通过-C参数指定解压文件存放目录为 /usr/local。

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local

3:使用vim命令修改/etc/profile文件,在文件末尾加入如下配置

JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH

4:为了使更改的配置立即生效,需要重新加载profile文件,执行命令:

source /etc/profile

5:检查JDK包是否安装成功,如下图所示,表示JDK已经安装成功

Mycat安装

1:将Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz包上传到临时目录下

 2:解压MyCat的压缩包

tar -zxvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz -C /usr/local/

Mycat各目录介绍

 bin : 存放可执行文件,用于启动停止mycat

conf:存放mycat的配置文件

lib:存放mycat的项目依赖包(jar

logs:存放mycat的日志文件

Mycat概念介绍

在MyCat的整体结构中,分为两个部分:上面的逻辑结构、下面的物理结构。

 

MyCat的逻辑结构主要负责逻辑库、逻辑表、分片规则、分片节点等逻辑结构的处理,而具体的数据存储还是在物理结构,也就是数据库服务器中存储的。

Mycat入门演示

三台测试机,主要用来演示如何通过直接操作Mycat而达到对三台实体机器上对mysql数据库的操作

 

一:在三台mysql数据库机器上都建立一个名叫db01的数据库,建立好以后,不要再对这三台数据库进行任何的建库,建表操作

二:配置Mycat服务

在mycat的conf目录下,需要配置schema.xml和server.xml的文件

 Schema.xml配置

Server.xml配置

我们只需要找到最后面,配置如下指定信息即可

完成Mycat配置后,mycat就能正常启动了,在启动前,我们还需要将mycat/lib目录下,将mysql-connector-java-5.1.35.jar这个包给删除替换掉,如下所示 :

 删除旧包

 将下载来的mysql-connector-java-8.0.22.jar这个包复制到mycat/li目录下,并将该包的权限改成777即可,如下所示:

 

 Mycat启动

bin/mycat start启动mycat

bin/mycat stop停止mycat

可以查看mycat/logs目录下的wrapper.log文件,确认mycat是否正常启动,如下图:

 Mycat使用

mycat使用的端口是8066端口

Mysql -h 10.168.5.183 -P 8066 -u root -p

 成功连接mycat后,我们就能像操作mysql一样,操作mycat.

 此时,只有在mycat上存在一张叫做tb_order的逻辑表,在主机10.168.5.193、10.168.5.194上并不存在tb_order的表,因此,我们在mycat中建立一张实体的tb_order表,

create table tb_order(id bigin not null,title varchar(100) not null,primary key(id))engine=innodb default charset=utf8;

建立好以后,我们查看5.193和5.194的数据库,这时就能发现这两个库中已经有tb_order

这张表了。

 

 验证数据分库分表

插入三条数据,如下所示,我们在mycat中添加了三条数据,可以看到,在5.183的机器上能看到新增加的数据,但是5.193和5.194却没有数据。

 造成该问题的原因,是因为我们现在采用的默认策略原因引起的,该默认策略规则如下:

如果id的值在1-500w之间,数据将会存储在第一个分片数据库中。

如果id的值在500w-1000w之间,数据将会存储在第二个分片数据库中。

如果id的值在1000w-1500w之间,数据将会存储在第三个分片数据库中。

如果id的值超出1500w,在插入数据时,将会报错。

 以上,我们完成了mycat的安装、入门使用及验证情况,对于分库分表详细的策略说明,我将在后续学习手记中进行分享。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MuYiZi2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值