• MyCat全局表


    MyCat全局表:

      在一些系统中,可能有一些重要的数据字典信息,例如:如果要进行栏目的分类,或者进行某些类别的定义,这个时候就可以通过一个数据字典的形式进行描述,这样一来,几乎所有的项目都有可能用到这些数据字典表,于是就可以在所有的数据库里面进行这些数据表的重复定义,这样的操作就称为全部表。

    1. 在两台数据库中进行全局表的定义,但是为了区分本次使用不同数据库的名称进行配置:

    DROP DATABASE IF EXISTS yootk_groupb ;
    CREATE DATABASE yootk_groupb CHARACTER SET UTF8 ;
    use yootk_groupb ;
    CREATE TABLE dict(
        did   BIGINT   AUTO_INCREMENT ,
        title   VARCHAR(50) ,
        content  TEXT ,
        CONSTRAINT pk_did PRIMARY KEY(did)
    ) engine=innodb ;
    DROP DATABASE IF EXISTS yootk_groupc ; CREATE DATABASE yootk_groupc CHARACTER SET UTF8 ; use yootk_groupc ; CREATE TABLE dict( did BIGINT AUTO_INCREMENT , title VARCHAR(
    50) , content TEXT , CONSTRAINT pk_did PRIMARY KEY(did) ) engine=innodb ;

      此时的两个数据库名称时完全不同的,而且是保存在不同点的数据库服务器上的,但是表名称一定要相同;

    2.【MyCat】 所有的配置项一定要在schema.xml配置文件中进行定义:vim /usr/local/mycat/conf/schema.xml 

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
            <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
                    <table name="info" primaryKey="id" dataNode="dna,dnb,dnc" rule="info-mod-long"/>
            </schema>
            <dataNode name="dna" dataHost="localhost1" database="yootk" />
            <dataNode name="dnb" dataHost="localhost2" database="yootk" />
            <dataNode name="dnc" dataHost="localhost3" database="yootk" />
            <dataHost name="localhost1" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <writeHost host="hostM1" url="192.168.195.148:3306" user="root" password="mysqladmin">
                <readHost host="hostS2" url="192.168.195.149:3306" user="root" password="mysqladmin" />
            </writeHost>
            </dataHost>
            <dataHost name="localhost2" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <writeHost host="hostM1" url="192.168.195.150:3306" user="root" password="mysqladmin"/>
            </dataHost>
            <dataHost name="localhost3" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <writeHost host="hostM1" url="192.168.195.151:3306" user="root" password="mysqladmin"/>
            </dataHost>
    </mycat:schema>

    3.【MyCat】 此时的配置追加有三个新的逻辑数据库,所以修改server.xml文件:vim /usr/local/mycat/conf/server.xml

    <user name="root" defaultAccount="true">
            <property name="password">123456</property>
            <property name="schemas">TESTDB,TESTDB-B,TESTDB-C</property>
    </user>

    4. 【MyCat】启动MyCat服务:/usr/local/mycat/bin/mycat restart

    5.【MyCat】 登录到MyCat数据操作端口:mysql -uroot -p123456 -P8066 -DTESTDB -h127.0.0.1

    6.【MyCat】 在MyCat主机中,向dict数据库中追加数据内容:

    INSERT INTO dict(title,content) VALUES ('info-a',@@hostname) ;
    INSERT INTO dict(title,content) VALUES ('info-b',@@hostname) ;
    INSERT INTO dict(title,content) VALUES ('info-c',@@hostname) ;

      此时所增加的数据会自动保存到所有与全局表有关的数据库之中,即:这类的全局信息表可以进行统一的维护操作;

    7. 进行查询:select title,count(*) from info group by title ;

  • 相关阅读:
    杭电2095--find your present (2) (异或)
    南阳168--房间安排(区间覆盖)
    南阳954--N!(数学)
    南阳--69(数的长度)
    杭电--N!(大数)
    杭电1005--Number Sequence
    杭电1108--最小公倍数
    动态规划:最长上升子序列(二分算法 nlogn)
    动态规划:最长上升子序列之基础(经典算法 n^2)
    vector函数用法
  • 原文地址:https://www.cnblogs.com/luliang888/p/11147940.html
Copyright © 2020-2023  润新知