文章目录

1.MyCat是什么

  • 一个彻底开源的,面向企业应用开发的大数据库集群

  • 支持事务、ACID、可以替代MySQL的加强版数据库

  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server

  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

  • 一个新颖的数据库中间件产品

2.MyCat能做什么

突然想先~~~(* ̄︶ ̄) !

https://cdn.xwder.com/image/blog/xwder/1-20201228215919057.jpg

2.1数据库读写分离

https://cdn.xwder.com/image/blog/xwder/1-20201228220135643.png

2.2数据分片

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

https://cdn.xwder.com/image/blog/xwder/1-20201228220303266.png


2.3多数据源整合

https://cdn.xwder.com/image/blog/xwder/1-20201228220530222.png


3.MyCat原理

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

https://cdn.xwder.com/image/blog/xwder/1-20201228220750004.png


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

4.MyCat安装

4.1 Java环境、MyCat下载

    本次实验安装在CentOS7系统环境,MyCat基于Java开发,so 需要先安装Java环境(我安装的jdk11版本),至于如何,嗯~~安装你懂得~~~(手动滑稽)!

https://cdn.xwder.com/image/blog/xwder/1-20201228221235627.jpeg

    MyCat官网:http://www.mycat.org.cn/

    MyCat GitHub下载地址: https://github.com/MyCATApache/Mycat-Server/releases

    本次安装版本:Mycat-server-1675-release

    下载弄到服务器中,先来一顿解压重命名骚操作,然后移动到 /usr/local 目录。(解压即可,重命名个人习惯)

[root@localhost software]# tar -zxf Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz 
[root@localhost software]# mv mycat/ mycat_1.6.7.5
[root@localhost software]# mv mycat_1.6.7.5/ /usr/local/

[root@localhost mycat_1.6.7.5]# cd  /usr/local/mycat_1.6.7.5/
[root@localhost mycat_1.6.7.5]# ll
总用量 12
drwxr-xr-x. 2 root root  190 12月 28 22:21 bin
drwxrwxrwx. 2 root root    6 10月 22 2019 catlet
drwxrwxrwx. 4 root root 4096 12月 28 22:21 conf
drwxr-xr-x. 2 root root 4096 12月 28 22:21 lib
drwxrwxrwx. 2 root root    6 4月   8 2020 logs
-rwxrwxrwx. 1 root root  227 4月  10 2020 version.txt

    重点关注: bin 、conf 目录:

  • bin目录:可执行文件目录

  • conf: 配置文件目录

4.2 修改server.xml文件

server.xml 是配置Mycat数据库中间件连接信息:

vim conf/server.xml
修改前:
        <user name="root" defaultAccount="true">
                <property name="password">123456</property>
                <property name="schemas">TESTDB</property>
                <property name="defaultSchema">TESTDB</property>
                <!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->

                <!-- 表级 DML 权限设置 -->
                <!--            
                <privileges check="false">
                        <schema name="TESTDB" dml="0110" >
                                <table name="tb01" dml="0000"></table>
                                <table name="tb02" dml="1111"></table>
                        </schema>
                </privileges>           
                 -->
        </user>
修改后:
        <user name="mycat">
                <property name="password">123456</property>
                <property name="schemas">mycat</property>
                <!-- <property name="readOnly">true</property> -->
                <property name="defaultSchema">mycat</property>
        </user>

4.2 修改server.xml文件

schema.xml 是MyCat配置物理数据库的配置文件:

vim conf/schema.xml 
修改后:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="mycat" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1">
                <table name="mytbl" dataNode="dn1"  />
        </schema>
        <dataNode name="dn1" dataHost="host1" database="mycat" />
        <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="jdbc:mysql://172.17.0.4:3306" user="root"
                                   password="root">
                </writeHost>
        </dataHost>
</mycat:schema>

4.3启动测试MyCat

    进入 bin 目录:

    启动命令: 控制台启动(方便查看日志)  ./mycat console

    后台启动: ./mycat start

    关闭命令: ./mycat stop 

    查看日志命令: tail -f /usr/local/mycat_1.6.7.5/logs/mycat.log 

    启动看到如下日志标识启动成功:

[root@localhost bin]# ./mycat console
Running Mycat-server...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Java HotSpot(TM) 64-Bit Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release.
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    | 
jvm 1    | MyCAT Server startup successfully. see logs in logs/mycat.log

    连接mycat:

https://cdn.xwder.com/image/blog/xwder/1-20201228225718759.png

查询数据:

https://cdn.xwder.com/image/blog/xwder/1-20201228225921317.png

MyCat最基础的安装配置完成!搞完收工。2020年12月28日23:01:08

https://cdn.xwder.com/image/blog/xwder/1-20201228230116013.jpg


    

    下一篇: MyCat教程(二)-MySql数据库读写分离