MyCat入门+JAVA程序连接

本文章主要对mycat的配置文件注释说明,详细的安装使用请戳这个地址:

mycat安装使用-https://blog.csdn.net/u013467442/article/details/56955846

  • 代码中
  • 连接mycat时,将原先连接mysql的端口和数据库改为mycat的端口8066,和mycat的逻辑数据库TESTDB,用户名和密码为server.xml表里设定的user。
jdbc.url=jdbc:mysql://127.0.0.1:8066/TESTDB?characterEncoding=utf-8
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=user
jdbc.password=user
  • mycat配置文件
  • server.xml:设置连接的用户,例如连接mysql数据库时所需的用户名、密码和连接哪个数据库;通过该xml可以配置连接用户的权限。在实验中,测试了user用户,由于设置了只读,所以在插入数据时抛了异常。
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE mycat:server SYSTEM "server.dtd">  
<mycat:server xmlns:mycat="http://io.mycat/">  
        <system>  
                <property name="defaultSqlParser">druidparser</property>  
                <property name="mutiNodeLimitType">1</property>  
                <property name="serverPort">8066</property> #连接端口,替换连接mysql时的3306端口
                <property name="managerPort">9066</property>   
        </system>  
        <!-- 任意设置登陆 mycat 的用户名,密码,数据库  -->  
        <user name="test"> 
                <property name="password">test</property>  
                <property name="schemas">TESTDB</property>  #该用户能够连接的逻辑数据库
        </user>  
 
        <user name="user">  
                <property name="password">user</property>  
                <property name="schemas">TESTDB</property>  
                <property name="readOnly">true</property>  
        </user>  
        <!--   
        <quarantine>   
           <whitehost>  
              <host host="127.0.0.1" user="mycat"/>  
              <host host="127.0.0.2" user="mycat"/>  
           </whitehost>  
       <blacklist check="false"></blacklist>  
        </quarantine>  
        -->  
</mycat:server> 

 

  • schema.xml:设置TESTDB逻辑数据库对应哪些表,哪些表在哪些节点,节点的地址,
<?xml version="1.0"?>  
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">  
<mycat:schema xmlns:mycat="http://io.mycat/">  
 
    <!-- 设置表的存储方式.schema name="TESTDB" 与 server.xml中的 TESTDB 设置一致  -->  
    <!-- 设置这个TESTDB逻辑数据库对应哪些表,item表的rule=role1是该表的分库规则,在rule.xml里设定了规则 -->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">  
        <table name="users" primaryKey="id"  dataNode="node_db01" />  
        <table name="item" primaryKey="id" dataNode="node_db02,node_db03" rule="role1" />  
    </schema>  
 
    <!-- 设置dataNode 对应的数据库,及 mycat 连接的地址dataHost -->  
    <dataNode name="node_db01" dataHost="dataHost01" database="db01" />  
    <dataNode name="node_db02" dataHost="dataHost01" database="db02" />  
    <dataNode name="node_db03" dataHost="dataHost01" database="db03" />  
 
    <!-- mycat 逻辑主机dataHost对应的物理主机.其中也设置对应的mysql登陆信息 -->  
    <dataHost name="dataHost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">  
            <heartbeat>select user()</heartbeat>  
            <writeHost host="server1" url="127.0.0.1:3306" user="root" password="root"/>  
    </dataHost>  
</mycat:schema>

rule.xml:该路由表表明采用mod2的方式进行路由。通过下面可知是对item表的id键进行取模分表的,取模分到db02和db03,而users表直接路由到db01中。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/">
    
    <tableRule name="role1"> #创建角色,用于给哪张表分配角色
        <rule>
            <columns>id</columns>#根据id进行分割
            <algorithm>mod-long</algorithm>
        </rule>
    </tableRule>
    #分库规则,上面设定了id作为分割条件,条件为 id % 2
    <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
        <!-- how many data nodes -->
        <property name="count">2</property>
    </function>
</mycat:rule>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值