Mycat概述及基本使用

概述

Mycat是数据库中间件。官网:http://www.mycat.io/

中间件

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

数据库中间件

连接Java等应用程序和数据库。

为什么要用Mycat

  • Java与数据库紧耦合。
  • 高访问量高并发对数据库的压力。
  • 读写请求数据不一致。

Mycat作用

读写分离

在这里插入图片描述

数据分片

  • 垂直拆分(分库)
  • 水平拆分(分表)
  • 垂直+水平拆分(分库分表)

在这里插入图片描述

多数据源整合

Mycat支持多数据源

在这里插入图片描述

Mycat实现原理

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

这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用的是Mycat还是MySQL

在这里插入图片描述

安装启动

安装

下载地址:http://dl.mycat.org.cn/。选择版本进行下载即可。

本文使用的是1.6.7.6 Linux版本。

  • Linux下载地址:http://dl.mycat.org.cn/1.6.7.6/20220524101549/Mycat-server-1.6.7.6-release-20220524173810-linux.tar.gz
  • Win下载地址:http://dl.mycat.org.cn/1.6.7.6/20220524101549/Mycat-server-1.6.7.6-release-20220524173810-win.tar.gz

解压即可使用

配置文件

  • schema.xml:定义逻辑库、表、分片节点等内容。
  • rule.xml:定义分片规则。
  • server.xml:定义用户以及系统相关变量,如端口等。

启动

  1. 修改配置文件server.xml

    修改用户信息,与MySQL区分,如下:

    <user name="mycat" defaultAccount="true">
    	<property name="password">123456</property>
    	<property name="schemas">TESTDB</property>
    </user>
    
  2. 修改配置文件schema.xml

    删除<schema>标签的表信息,<dataNode>标签只保留一个,<writeHost><readHost>只留一对

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    
            <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
            </schema>
            <dataNode name="dn1" dataHost="host1" database="testdb" />
            <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
                              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <!-- can have multi write hosts -->
                    <writeHost host="hostM1" url="192.168.110.145:3306" user="root"
                                       password="123456">
                            <!-- can have multi read hosts -->
                            <readHost host="hostS1" url="192.168.110.145:3306" user="root" password="123456" />
                    </writeHost>
            </dataHost>
    </mycat:schema>
    
  3. 验证数据库访问情况

    Mycat作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。

    mysql -uroot -p123456 -h 192.168.110.145 -P 3306
    
    #如远程访问报错,请建对应用户
    grant all privileges on *.* to root@'缺少的host' identified by '123456';
    
  4. 启动程序

    • 控制台启动: mycat/bin 目录下执行./mycat console
    • 后台启动: mycat/bin 目录下执行./mycat start

登录

  1. 登录后台管理窗口

    此登录方式用于管理维护 Mycat

    mysql -umycat -p123456 -P 9066 -h 192.168.110.145
    

    常用命令如下:

    # 查看数据库
    show database
    # show 帮助
    show @@help
    
  2. 登录数据窗口

    此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问Mycat

    mysql -umycat -p123456 -P 8066 -h 192.168.110.145
    

猜你喜欢

转载自blog.csdn.net/qq_41779565/article/details/125375129