Mycat的使用

Posted wlwl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat的使用相关的知识,希望对你有一定的参考价值。

Mycat支持的命令:

  console 前台启动     start 后台启动        stop 停止

  restart 重启         status 查看状态      dump 数据导出

  mycat的默认端口号为:8066

 【mycat安装】

  1. 下载mycat     https://github.com/MyCATApache/Mycat-download
  2. cd /use/local/wulei      上传mycat到服务器
  3. 解压  tar -zxvf Mycat-server-1.4-release-20151019230038-linux.tar.gz  得到mycat文件夹
  4. tree命令查看文件结构
[[email protected] wulei]# tree mycat
mycat
├── bin
│   ├── mycat
│   ├── rehash.sh
│   ├── startup_nowrap.sh
│   ├── wrapper-linux-ppc-64
│   ├── wrapper-linux-x86-32
│   └── wrapper-linux-x86-64
├── catlet
├── conf
│   ├── autopartition-long.txt
│   ├── cacheservice.properties
│   ├── ehcache.xml
│   ├── index_to_charset.properties
│   ├── log4j.xml
│   ├── partition-hash-int.txt
│   ├── partition-range-mod.txt
│   ├── router.xml
│   ├── rule.xml
│   ├── schema.xml        分片逻辑库的配置文件
│   ├── sequence_conf.properties
│   ├── sequence_db_conf.properties
│   ├── sequence_time_conf.properties
│   ├── server.xml
│   └── wrapper.conf
├── lib
│   ├── druid-1.0.14.jar
│   ├── ehcache-core-2.6.11.jar
│   ├── guava-18.0.jar
│   ├── leveldb-0.7.jar
│   ├── leveldb-api-0.7.jar
│   ├── libwrapper-linux-ppc-64.so
│   ├── libwrapper-linux-x86-32.so
│   ├── libwrapper-linux-x86-64.so
│   ├── log4j-1.2.17.jar
│   ├── mapdb-1.0.7.jar
│   ├── mongo-java-driver-2.11.4.jar
│   ├── Mycat-server-1.4-release.jar
│   ├── sequoiadb-java-driver-1.0-20150615.070208-1.jar
│   ├── slf4j-api-1.7.12.jar
│   ├── slf4j-log4j12-1.7.12.jar
│   ├── univocity-parsers-1.5.4.jar
│   └── wrapper.jar
├── logs
└── version.txt

  5. 测试   进到bin目录启动mycat     cd mycat/bin       ./mycat start     ./mycat stop

      6. 查看配置文件 vim /usr/local/wulei/mycat/conf/schema.xml  我这里把多余的注释都删了,看起来会清爽些!

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">

    <!-- testdb:逻辑库的库名,我们程序就是连的它,这个名称也可以自定义。 -->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <!-- table:逻辑表  name:表名  dataNode:数据节点      rule:分片规则-->
        <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
        <!-- 全局表被自动克隆到所有已定义的数据节点,因此可以连接任何表的分片节点都在同一个数据节点中 -->
        <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
        <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />
        <!-- 使用mod sharind规则随机分片 -->
        <table name="hotnews" primaryKey="ID" dataNode="dn1,dn2,dn3" rule="mod-long" />
        <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" />
        <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile">
            <childTable name="orders" primaryKey="ID" joinKey="customer_id"
                parentKey="id">
                <childTable name="order_items" joinKey="order_id"
                    parentKey="id" />
            </childTable>
            <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"
                parentKey="id" />
        </table>
    </schema>
    

    <!-- dataNode:数据节点    dataHost:节点主机   database:物理库库名  -->
    <dataNode name="dn1" dataHost="localhost1" database="db1" />
    <dataNode name="dn2" dataHost="localhost1" database="db2" />
    <dataNode name="dn3" dataHost="localhost1" database="db3" />
    

   <!-- 主机配置  一台服务器一个<dataHost>节点,集群环境下就有多个  -->
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- 主节点(可多个) -->
        <writeHost host="hostM1" url="localhost:3306" user="root"password="123456"></writeHost>
        <!-- 从节点(可多个) -->
        <writeHost host="hostS1" url="localhost:3316" user="root"
            password="123456" />
        <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
    </dataHost>
    
</mycat:schema>

 上面我们已经安装完成了,并对核心配置文件有了一个大致的认识。下面就开始配置一个集群分片~

=============================================================================

  我们这里也是伪集群,真实情况下都是一台服务器一个数据库。所以下图的<dataHost>标签会有多个,每一个<dataNode>和<dataHost>对应就好了 !

【分片配置】

技术分享图片

 

  未完待续  ~~  休息一会

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于Mycat的使用的主要内容,如果未能解决你的问题,请参考以下文章

福利mycat使用指南

Mycat——分表分库组件

MyCat 启蒙:分布式系统的数据库架构演变

MyCat 启蒙:分布式系统的数据库架构演变

源代码方式调试Mycat

数据库读写分离分表分库——用Mycat