zoukankan      html  css  js  c++  java
  • Mycat的学习

    1.安装,要先安装JDK,要注意是64位版,最好是tar.gz的(在官网下载下来是.gz结尾,直接将名字改成tar.gz。。。)

    2.涉及3个配置文件

    server.xml 用于设置登陆mycat的账号密码以及登陆后能看到的虚拟表

        <user name="root">
            <property name="password">123456</property>
            <property name="schemas">TESTDB</property>
            
            <!-- 表级 DML 权限设置 -->
            <!--         
            <privileges check="false">
                <schema name="TESTDB" dml="0110" >
                    <table name="tb01" dml="0000"></table>
                    <table name="tb02" dml="1111"></table>
                </schema>
            </privileges>        
             -->
        </user>

    schema.xml 用来设置mycat中的虚拟表,以及所用到的规则和正式用到的数据库

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    
        <schema name="TESTDB" checkSQLschema="ture" sqlMaxLimit="100">
            <table name="t1" dataNode="dn1,dn2" rule="auto-sharding-long" />     虚拟表,那个ture是固定的,limit是指查询条数,允许dn1,dn2两个数据库连接,rule来自于rule.xml
        </schema>
        
        <schema name="d1" checkSQLschema="ture" sqlMaxLimit="100">
            <table name="t1" dataNode="dn1,dn2" rule="auto-sharding-long" />
        </schema>
        
        <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
            /> -->
        <dataNode name="dn1" dataHost="localhost1" database="db1" />
        <dataNode name="dn2" dataHost="localhost2" database="db2" />              连接的两个真实数据库
        <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
         <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
        <dataNode    name="jdbc_dn2" dataHost="jdbchost" database="db2" />
        <dataNode name="jdbc_dn3"     dataHost="jdbchost" database="db3" /> -->
        <dataHost name="localhost1" 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.189.128:3306" user="tang"
                       password="123123">
        </dataHost>
        
    
    
        <dataHost name="localhost2" 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.189.128:3306" user="tang"
                       password="123123">
        </dataHost>
    </mycat:schema>

    rule.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE mycat:rule SYSTEM "rule.dtd">
    <mycat:rule xmlns:mycat="http://io.mycat/">
        <tableRule name="auto-sharding-long">
            <rule>
                <columns>prov</columns>
                <algorithm>hash-int</algorithm>
            </rule>
        </tableRule>
    
        <function name="hash-int"
            class="io.mycat.route.function.PartitionByMurmurHash">
            <property name="mapFile">auto-sharding-long.txt</property>         设定规则来自这个文件
            <property name="type">1</property><!-- 要分片的数据库节点数量,必须指定,否则没法分片 -->
            <property name="virtualBucketTimes">160</property><!-- 一个实际的数据库节点被映射为这么多虚拟节点,默认是160倍,也就是虚拟节点数是物理节点数的160倍 -->
        </function>
    </mycat:rule>

    这样就可以实现分布式储存了

  • 相关阅读:
    sharepoint 2010 资料
    调试 SharePoint 解决方案
    定义不同模板的网站集
    作图工具
    struts2的优点
    get load
    什么是java的事物
    session的实现方式
    final 和static的关系
    各种大神的表单验证 感谢大神的辛苦
  • 原文地址:https://www.cnblogs.com/tangbinghaochi/p/6432271.html
Copyright © 2011-2022 走看看