Mycat入门(Windows环境)

Mycat(Windows环境)(1) 初入门

Mycat 是SQL集群中间件,基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能

1. MyCat准备

  • 安装 mysql

Mycat入门(Windows环境)_第1张图片

  • 安装jdk 1.8

    1. 这是 jdk 下载地址.

    2. 安装完成,配好环境变量

Mycat入门(Windows环境)_第2张图片

  • 下载maycat

    1. 这是 mycat 下载地址.

    2. mycat 下载目录

Mycat入门(Windows环境)_第3张图片

Mycat入门(Windows环境)_第4张图片

2. 数据库准备

Mycat入门(Windows环境)_第5张图片


create database db1; 

 CREATE TABLE users (  
    id INT NOT NULL AUTO_INCREMENT,  
    username varchar(32) NOT NULL default '',  
        passwork varchar(32) NOT NULL default '',
    time DATETIME NOT NULL default '1971-01-01 01:00:00',  
    PRIMARY KEY (id)  
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;  

create database db2;  
 CREATE TABLE orders (  
    id INT NOT NULL AUTO_INCREMENT,  
    oid varchar(32) NOT NULL default '', 
        money decimal(19,4) NOT NULL default 0,
        state TINYINT NOT NULL default 0,
    time DATETIME NOT NULL default '1971-01-01 01:00:00',  
    PRIMARY KEY (id)  
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8; 

create database db3; 
CREATE TABLE orders (  
    id INT NOT NULL AUTO_INCREMENT,  
    oid varchar(32) NOT NULL default '', 
        money decimal(19,4) NOT NULL default 0,
        state TINYINT NOT NULL default 0,
    time DATETIME NOT NULL default '1971-01-01 01:00:00',  
    PRIMARY KEY (id)  
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;  

3. MyCat配置

  1. MyCat配置 官方文档.

    mycat 的配置文件在conf下:

Mycat入门(Windows环境)_第6张图片

  1. 为实现下图:

Mycat入门(Windows环境)_第7张图片

配置如下:

  • server.xml

  
  
<mycat:server xmlns:mycat="http://io.mycat/">  
        <system> 
                <property name="defaultSqlParser">druidparserproperty>  
                <property name="mutiNodeLimitType">1property>  
                <property name="serverPort">8066property>    
                <property name="managerPort">9066property>   
        system>  
          
        <user name="test">  
                <property name="password">123456property>  
                <property name="schemas">JGDBproperty>  
        user>  

        <user name="user">  
                <property name="password">123456property>  
                <property name="schemas">JGDBproperty>  
                <property name="readOnly">trueproperty>  
        user>  
mycat:server>   
  • rule.xml




<mycat:rule xmlns:mycat="http://io.mycat/">

    <tableRule name="order_rule">
        <rule>
            <columns>idcolumns>
            <algorithm>mod-longalgorithm>
        rule>
    tableRule>

    <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
        
        <property name="count">2property>
    function>
mycat:rule>
  • schema.xml

  
  
<mycat:schema xmlns:mycat="http://io.mycat/">  

      
    <schema name="JGDB" checkSQLschema="false" sqlMaxLimit="100">  
        <table name="users" primaryKey="id"  dataNode="db1" />  
        <table name="orders" primaryKey="id" dataNode="db2,db3" rule="order_rule" />  

    schema>  

      
    <dataNode name="db1" dataHost="host1" database="db1" />  
    <dataNode name="db2" dataHost="host1" database="db2" />  
    <dataNode name="db3" dataHost="host1" database="db3" />  

      
    <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">  
            <heartbeat>heartbeat>  
            <writeHost host="server1" url="127.0.0.1:3306" user="root" password="xinfu978"/>  
    dataHost> 

mycat:schema>

4. 测试

  1. 使用 navicat连接 mycat

Mycat入门(Windows环境)_第8张图片

Mycat入门(Windows环境)_第9张图片

  1. 插入users表数据测试

    • 往users 插入两个用户

Mycat入门(Windows环境)_第10张图片

  • 查看物理库 db1 的users表是否有数据

Mycat入门(Windows环境)_第11张图片

  • 测试成功

    1. 插入order表数据测试(是否id单数在db3,双数在db2)
  • 往orders 插入4条数据

Mycat入门(Windows环境)_第12张图片

  • 查看物理库 db2,db3 的 orders 表是否有对的数据

Mycat入门(Windows环境)_第13张图片

–db2 数据符合

Mycat入门(Windows环境)_第14张图片

–db3 数据符合

5. 测试成功

你可能感兴趣的:(SQL,Mycat)