MyCAT从入门到实战(MyCAT介绍,以及安装部署)

Mycat 是数据库中间件。

1、数据库中间件

中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。

例子:Tomcat,web中间件。

数据库中间件:连接java应用程序和数据库

2、为什么要用Mycat?

① Java与数据库紧耦合。

② 高访问量高并发对数据库的压力。

③ 读写请求数据不一致

3.Mycat可以干什么?

1、读写分离

2、数据分片 

3、多数据源整合 

 数据库中间件对比

 

 MyCAT2名词解释

分库分表 :按照一定规则把数据库中的表拆分为多个带有数据库实例、物理库、物理表访问路径的分表(重点)。 

逻辑库 :数据库代理中的数据库,它可以包含多个逻辑表。

 逻辑表: 数据库代理中的表,它可以映射代理连接的数据库中的表(物理表)。

物理库 数据库代理连接的数据库中的库,比如MySQL上的information_schema。

物理表 数据库代理连接的数据库中的表,比如MySQL上的information_schema.TABLES(重点)。

 拆分键 即分片键,描述拆分逻辑表的数据规则的字段。

分区键 当使用等值查询的时候,能直接映射一个分区的拆分键。

物理分表 指已经进行数据拆分的,在数据库上面的物理表,是分片表的一个分区。

 物理分库 一般指包含多个物理分表的库。

分库 一般指通过多个数据库拆分分片表,每个数据库一个物理分表,物理分库名字相同。

 分片表、水平分片表 按照一定规则把数据拆分成多个分区的表,在分库分表语境下,它属于逻辑表的一种。

 全局表(广播表) 每个数据库实例都冗余全量数据的逻辑表。 它通过表数据冗余,使分片表的分区与该表的数据在同一个数据库实例里,达到JOIN运算能够直接在该 数据库实例里执行。它的数据一致一般是通过数据库代理分发SQL实现,也有基于集群日志的实现。

 集群 多个数据节点组成的逻辑节点,在MyCAT2里,它是把对多个数据源地址视为一个数据源地址(名称),并 提供自动故障恢复、转移、即实现高可用、负载均衡的组件。

数据源 连接后端数据库的组件,它是数据库代理中连接后端数据库的客户端。

schema(库) 在MyCAT2中配置表逻辑,视图等的配置。

安装及启动

安装

1.使用MyCAT 2要安装jdk,MyCAT 2基于JDK 1.8开发。(私信我发送)

[root@service ~]# ll
总用量 186424
-rw-------. 1 root root      1293  9月  7 16:34 anaconda-ks.cfg
-rw-r--r--. 1 root root 190890122  2月 22  2022 jdk-8u171-linux-x64.tar.gz
[root@service ~]# tar -zxvf jdk-8u171-linux-x64.tar.gz

2.下载安装包 下载对应的tar安装包,以及对应的jar包

wget -c http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
wget -c http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar

3.解压,把所需的jar复制到mycat/lib目录,修改目录权限

[root@service ~]# unzip mycat2-install-template-1.21.zip -d /usr/local/
[root@service ~]# cp mycat2-1.21-release-jar-with-dependencies.jar /usr/local/mycat/lib/
[root@service ~]#  cd /usr/local/mycat/bin/
修改文件夹及以下文件的权限
[root@service bin]# chmod +x *
mycat目录结构
[root@service bin]# ll /usr/local/mycat/
总用量 12
drwxr-xr-x. 2 root root 4096  3月  5  2021 bin
drwxr-xr-x. 9 root root 4096  3月  5  2021 conf
drwxr-xr-x. 2 root root 4096  2月 27 18:24 lib
drwxr-xr-x. 2 root root    6  3月  5  2021 logs

4.启动一个MySQL,因为mycat代理启动时需要一个默认的数据源,所以我们在启动时为其准备一个数据源。

mysql> CREATE USER 'mycat'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> CREATE USER 'mycat'@'%' IDENTIFIED WITH mysql_native_password BY 'Wyxbuke00.';
Query OK, 0 rows affected (0.02 sec)

mysql> GRANT XA_RECOVER_ADMIN ON *.* TO 'mycat'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

5.配置物理库地址

[root@service bin]#  vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json
{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ_WRITE",
        "logAbandoned":true,
        "maxCon":1000,
        "maxConnectTimeout":30000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"prototypeDs",
        "password":"123456",
        "queryTimeout":0,
        "removeAbandoned":false,
        "removeAbandonedTimeoutSecond":180,
        "type":"JDBC",
        "url":"jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true",
        "user":"root",
        "weight":0
}

启动mycat

①控制台启动 :去 mycat/bin 目录下执行 ./mycat console

②后台启动 :去 mycat/bin 目录下 ./mycat start

[root@service bin]# ./mycat start
Starting mycat2...
[root@service bin]# ./mycat status;
mycat2 is running (6513).
[root@service schemas]# mysql -uroot -pWyxbuke00. -P8066 -h192.168.142.139

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

元气满满的热码式

感谢您的支持!我会继续努力发布

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

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

打赏作者

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

抵扣说明:

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

余额充值