• MyCat简介与安装


    1.概述

    1.1.是什么

    Mycat是数据库中间件。

    1.1.1.MyCat由来

    Cobar属于阿里B2B事业群,始于2008年,在阿里服役3年多,接管3000+个MySQL数据库的schema,集群日处理在线SQL请求50亿次以上。由于Cobar发起人的离职,Cobar停止维护。
    Mycat是开源社区在阿里cobar基础上进行二次开发,解决了cobar存在的问题,并且加入了许多新的功能在其中。

    1.1.2.Mycat的官网

    http://www.mycat.io/

    1.2.作用

    1.2.1.读写分离

    在这里插入图片描述

    1.2.2.数据分片

    垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)
    在这里插入图片描述

    1.2.3.多数据源整合

    在这里插入图片描述

    1.3.原理

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

    在这里插入图片描述
    这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用Mycat还是MySQL。

    2. 安装启动

    2.1.安装

    2.1.1.解压后即可使用

    链接:https://pan.baidu.com/s/1DFBtcVmUg5hd1aH-OJcCEQ 
    提取码:1111 
    --来自百度网盘超级会员V2的分享
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    解压缩文件拷贝到linux下 /usr/local/

    2.1.2.三个配置文件

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

    2.2.配置

    2.2.1.修改配置文件server.xml

    在这里插入图片描述

    2.2.2.修改配置文件schema.xml

    删除<schema>标签间的表信息,
    <dataNode>标签只留一个,
    <dataHost>标签只留一个,
    <writeHost><readHost>只留一对
    
    • 1
    • 2
    • 3
    • 4
    <?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="mytestdb" />
            <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.200.166:3306" user="root" password="root">
                            <!-- can have multi read hosts -->
                            <readHost host="hostS1" url="192.168.200.168:3306" user="root" password="root" />
                    </writeHost>
            </dataHost>
    </mycat:schema>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.2.3.验证数据库访问情况

    启动mycat:

    ./mycat console
    
    • 1

    jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log 表示启动成功!
    Mycat作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。
    注意:要关闭防火墙!

    mysql -uroot -proot -h 192.168.200.168 -P 3306
    mysql -uroot -proot -h 192.168.200.166 -P 3306
    
    • 1
    • 2

    2.2.4.启动程序

    ①控制台启动 :去mycat/bin 目录下执行 ./mycat console ②后台启动 :去mycat/bin 目录下 ./mycat
    start 为了能第一时间看到启动日志,方便定位问题,我们选择①控制台启动。

    2.3.登录

    2.3.1.登录后台管理窗口

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

    mysql -umycat -p123456 -P 9066 -h 192.168.200.168
    
    • 1

    #常用命令如下:

    show database
    
    • 1

    在这里插入图片描述
    Show @@help 查看帮助命令

    2.3.2.登录数据窗口

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

    mysql -umycat -p123456 -P 8066 -h 192.168.200.168
    show databases;
    
    • 1
    • 2
    use TESTDB;
    show tables;
    select * from mytbl;#查询的哪个库?{应该是主机}
    修改从机的数据,再次查询!
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    基于VectorGrid加载GeoServer发布的矢量瓦片实例
    Transformer详解
    蓝桥杯前端Web赛道-输入搜索联想
    mybatis使用双层<foreach> 循环嵌套
    jQuery特效
    基于JAVA课程答疑系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    代码随想录笔记--回溯算法篇
    windows平台编译CEF支持H264(MP3、MP4)超详细
    【推荐】10款最好用的下载工具
    JAVA开发(Redis的使用, redis数据类型)
  • 原文地址:https://blog.csdn.net/daai5201314/article/details/126810834