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 ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM