zoukankan      html  css  js  c++  java
  • Mycat分布式数据库&.NET链接mysql

    http://www.blogjava.net/amigoxie/archive/2014/12/24/421788.html

    上面的链接很详细,下面是小结
    解压Mycat-server-1.5-RELEASE-20160301083012-win.tar

    安装步骤:

       启动前,一般需要修改JVM配置参数,打开conf/wrapper.conf文件,如下行的内容为2G和2048,可根据本机配置情况修改为512M或其它值。

    本地图片,请重新上传wrapper.java.additional.5=-XX:MaxDirectMemorySize=512M
    本地图片,请重新上传wrapper.java.additional.6=-Dcom.sun.management.jmxremote
    本地图片,请重新上传wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
    本地图片,请重新上传wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
    本地图片,请重新上传wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
    本地图片,请重新上传
    本地图片,请重新上传# Initial Java Heap Size (in MB)
    本地图片,请重新上传#wrapper.java.initmemory=3
    本地图片,请重新上传wrapper.java.initmemory=512
    本地图片,请重新上传
    本地图片,请重新上传# Maximum Java Heap Size (in MB)
    本地图片,请重新上传#wrapper.java.maxmemory=64
    本地图片,请重新上传wrapper.java.maxmemory=512

         在命令行窗口中进入MyCAT安装解压文件下的bin目录,输入如下命令可安装(可选)、启动和停止MyCAT,参考结果如下所示:

    本地图片,请重新上传D:softwareMycat-server-1.2-GA-winin>mycat install
    本地图片,请重新上传wrapper | Mycat-server installed.
    本地图片,请重新上传
    本地图片,请重新上传D:softwareMycat-server-1.2-GA-winin>mycat start
    本地图片,请重新上传wrapper | Starting the Mycat-server service
    本地图片,请重新上传wrapper | Waiting to start
    本地图片,请重新上传wrapper | Mycat-server started.
    本地图片,请重新上传
    本地图片,请重新上传D:softwareMycat-server-1.2-GA-winin>mycat stop
    本地图片,请重新上传wrapper | Stopping the Mycat-server service
    本地图片,请重新上传wrapper | Mycat-server stopped.

    垂直分切

     <schema name="weixin" checkSQLschema="false" sqlMaxLimit="100" dataNode="weixin" />

      <schema name="yixin" checkSQLschema="false" sqlMaxLimit="100" dataNode="yixin" />

      <schema name="photo" checkSQLschema="false" sqlMaxLimit="100" dataNode="photo" />

      <schema name="bbb" checkSQLschema="false" sqlMaxLimit="100" dataNode="bbb" />

        <dataNode name="weixin" dataHost="testhost" database="weixin" />

        <dataNode name="yixin" dataHost="testhost" database="yixin" />

        <dataNode name="photo" dataHost="testhost" database="photo" />

    <dataNode name="bbb" dataHost="testhost2" database="bbb" />

    <!--<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="testhost" maxCon="1000" minCon="10" balance="0"

           writeType="0" dbType="mysql" dbDriver="native">

           <heartbeat>select user()</heartbeat>

           <!-- can have multi write hosts -->

           <writeHost host="hostM1" url="localhost:3306" user="root" password="123456" />

        </dataHost>

      

      

    <dataHost name="testhost2" maxCon="1000" minCon="10" balance="0"

           writeType="0" dbType="mysql" dbDriver="native">

           <heartbeat>select user()</heartbeat>

           <!-- can have multi write hosts -->

           <writeHost host="hostM2" url="localhost:3307" user="root" password="123456" />

        </dataHost>

    水平分表

    http://wenku.baidu.com/view/78abcf392b160b4e777fcf6c.html?qq-pf-to=pcqq.c2c

    配置文件:schema.xml

    自定义一个虚拟数据库mycat 里面添加要水平分表的userinfo(这个表在weixin,bbb的两个数据库中都存在,表结构一样)

      <schema name="mycat" checkSQLschema="false" sqlMaxLimit="100"  >

        <!-- auto sharding by id (long) -->

           <table name="userinfo"  primaryKey="UPID" dataNode="weixin,bbb" rule="rule1">

           </table>

    </schema>

    配置文件:rule.xml

    下面partitionCount是要分库的数量,partitionLength是当多少条数据的时候进行分片,大概意思就是这样。

    <tableRule name="rule1">

    <rule>

    <columns>UPID</columns>

    <algorithm>func1</algorithm>

    </rule>

    </tableRule>

    <function name="func1" class="org.opencloudb.route.function.PartitionByLong">

    <property name="partitionCount">2</property>

    <property name="partitionLength">512</property>

    </function>

    --------------------------------

    还可以这样写

    <function name="func1" class="org.opencloudb.route.function.PartitionByLong">

    <property name="partitionCount">1,1</property>

    <property name="partitionLength">512,512</property>

    </function>

    配置文件:server.xml

    最后不要忘记配置数据库

    <user name="test">

    <property name="password">test</property>

    <property name="schemas">weixin,yixin,photo,bbb,mycat</property>

    </user>

    <user name="user">

    <property name="password">user</property>

    <property name="schemas">weixin,yixin,photo,bbb,mycat</property>

    <property name="readOnly">true</property>

    </user>

    最后项目里链接数据库字符串需要链接这个带有分表的库mycat

    读写分离:

    本地图片,请重新上传<dataHost name="testhost" maxCon="1000" minCon="10" balance="1"
    本地图片,请重新上传       writeType="0" dbType="mysql" dbDriver="native">
    本地图片,请重新上传       <heartbeat>select user()</heartbeat>
    本地图片,请重新上传       <!-- can have multi write hosts -->
    本地图片,请重新上传       <writeHost host="hostM1" url="localhost:3306" user="root" password="">
    本地图片,请重新上传           <readHost host="hostM2" url="10.18.96.133:3306" user="test" password="test" />
    本地图片,请重新上传       </writeHost>
    本地图片,请重新上传</dataHost>

    全局表:

    本地图片,请重新上传<schema name="test_mycat" checkSQLschema="false" sqlMaxLimit="100">
    本地图片,请重新上传       <!-- auto sharding by id (long) -->
    本地图片,请重新上传       <table name="t_user" dataNode="user0,user1,user2,user3" rule="rule1">
    本地图片,请重新上传           <childTable name="t_user_class_rel" primaryKey="id" joinKey="user_id" parentKey="user_id" />
    本地图片,请重新上传       </table>
    本地图片,请重新上传       <table name="t_area" primaryKey="id" type="global" dataNode="weixin,yixin,photo,user0,user1,user2,user3" />
    本地图片,请重新上传</schema>

    查看端口是否被占用:netstat -ano

    .NET 链接 MySQL

    所需DLL:MySQL.Data (可借助动软代码生成器生成的项目中找到)。

    所需数据库访问类:DbHelperMySQL(可从动软代码生成器的项目中找到)。

    WebConfig 中链接数据库字符串:

    <connectionStrings><addname="sql_conn" connectionString="server=localhost;port=3306;database=weixin;uid=root;pwd=123456;"/></connectionStrings>

    利用SQLBase泛型底层 (注意添加时表名不能加中括号“[ ]”,还有一些sql语句和mysql不太一样自己探索把)。

    利用SmileAngel dapper通用底层可以实现你想要的及你想不到的.................

    QQ:83199235
  • 相关阅读:
    简易sql拼接工具类(使用StringBuilder实现)
    缓存工具类(使用ConcurrentMap集合实现)
    properties文档读取工具类
    【Codeforces Round #655 (Div. 2)】A-D
    【2020 杭电多校第四场】Go Running 最小点覆盖
    【2020 杭电多校第四场】1002 Blow up the Enemy
    【2020 HDU 多校训练第三场 1007 Tokitsukaze and Rescue】暴力删边&最短路
    【2020杭电多校第二场】Total Eclipse 思维+并查集
    【2020HDU多校】Lead of Wisdom 暴力
    【CF-1371 C-E2】
  • 原文地址:https://www.cnblogs.com/softcg/p/6510900.html
Copyright © 2011-2022 走看看