CentOS7.5 搭建MyCat1.6.6


1、環境及版本

操作系統:   CentOS 7.5

MySQL:5.7.23

jdk:1.8.0_191

MyCat:1.6.6.1

cat /etc/centos-release
mysql -V
java -version

  

 

 

 

2、安裝包准備

下載網站:http://dl.mycat.io/1.6.6/

 

 

 

 

 【2】上傳至linux服務器:

mkdir /home/rhr/soft/mycat
cd /home/rhr/soft/mycat
rz

  

 

 

 3、開始安裝

【1】解壓

tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

【2】安裝tree(可選,使目錄結構更好看)

yum -y install tree

查看tree:

4、創建用戶並修改配置文件

【1】為了更好的進入mycat,設置MYCAT_HOME的變量

vim /etc/profile

 添加綠色部分:


export JAVA_HOME=/home/rhr/soft/jdk/jdk1.8.0_191
export MYCAT_HOME=/home/rhr/soft/mycat/mycat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/mysql/bin:$MYCAT_HOME/bin:$PATH


使得變量生效
source /etc/profile

  檢查

【2】配置mycat文件

(1)修改server.xml

cd home/rhr/soft/mycat/mycat/conf
cp server.xml server_bak.xml
vim  server.xml

修改前:

修改后:

 

 

(2)修改schema.xml

 1)  修改schema 標簽

修改前:

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <!-- auto sharding by id (long) -->
        <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

        <!-- global table is auto cloned to all defined data nodes ,so can join
                with any table whose sharding node is in the same data node -->
        <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
        <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />
        <!-- random sharding using mod sharind rule -->
        <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" />
        <!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global"
                needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> -->
        <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" />
        <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile">
            <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id">
                <childTable name="order_items" joinKey="order_id" parentKey="id" />
            </childTable>
            <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"  parentKey="id" />
        </table>
        <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> -->
    </schema>

 

修改后:

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <!-- auto sharding by id (long) -->
    <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

    <!-- global table is auto cloned to all defined data nodes ,so can join
        with any table whose sharding node is in the same data node -->

    <table name="company" primaryKey="company_id" type="global" dataNode="dn1,dn2,dn3" />
    <table name="goods" primaryKey="goods_id" type="global" dataNode="dn1,dn2" />

    <!-- random sharding using mod sharind rule -->
    <table name="hotnews" primaryKey="hotnews_id" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" />

    <!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global"
            needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> -->

    <table name="employee" primaryKey="employee_id" dataNode="dn1,dn2" rule="sharding-by-intfile" />

    <table name="customer" primaryKey="customer_id" dataNode="dn1,dn2" rule="sharding-by-murmur">
        <childTable name="orders" primaryKey="order_id" joinKey="customer_id" parentKey="customer_id">
            <childTable name="order_items" joinKey="order_id" parentKey="order_id" />
        </childTable>
        <childTable name="customer_addr" primaryKey="customer_addr_id" joinKey="customer_id"  parentKey="customer_id" />
    </table>
    <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> -->
    </schema>

 

 

 2)  修改schema 標簽

修改前

        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="localhost:3306" user="root" password="123">
            <!-- can have multi read hosts -->
            <readHost host="hostS2" url="localhost:3306" user="root" password="123" />
        </writeHost>
        <writeHost host="hostS1" url="localhost:3306" user="root" password="123" />
        <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->

修改后:

    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="localhost:3306" user="root"  password="YYBrhr_2018">
        <!-- can have multi read hosts -->
        <!-- <readHost host="hostS2" url="localhost:3306" user="root" password="123" /> -->
    </writeHost>
    <!-- <writeHost host="hostS1" url="localhost:3306" user="root" password="123" /> -->
    <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
    </dataHost>

(3)修改role.xml

修改前:    

<tableRule name="sharding-by-intfile">
        <rule>
            <columns>sharding_id</columns>
            <algorithm>hash-int</algorithm>
        </rule>
    </tableRule>
    <tableRule name="auto-sharding-long">
        <rule>
            <columns>id</columns>
            <algorithm>rang-long</algorithm>
        </rule>
    </tableRule>
    <tableRule name="mod-long">
        <rule>
            <columns>id</columns>
            <algorithm>mod-long</algorithm>
        </rule>
    </tableRule>
    <tableRule name="sharding-by-murmur">
        <rule>
            <columns>id</columns>
            <algorithm>murmur</algorithm>
        </rule>
    </tableRule>

 

修改后:

    <tableRule name="sharding-by-intfile">
        <rule>
            <columns>employee_id</columns>
            <algorithm>hash-int</algorithm>
        </rule>
    </tableRule>
    <tableRule name="auto-sharding-long">
        <rule>
            <columns>id</columns>
            <algorithm>rang-long</algorithm>
        </rule>
    </tableRule>
    <tableRule name="mod-long">
        <rule>
            <columns>hotnews_id</columns>
            <algorithm>mod-long</algorithm>
        </rule>
    </tableRule>
    <tableRule name="sharding-by-murmur">
        <rule>
            <columns>customer_id</columns>
            <algorithm>murmur</algorithm>
        </rule>
    </tableRule>

 5、啟動mycat並測試

【1】啟動mycat

 

mycat start
mycat status

【2】測試

 

mysql -u root -p -P8066 -h 127.0.0.1

這里輸入的密碼,是在/home/rhr/soft/mycat/mycat/conf/server.xml里面看到的密碼

 

 

這樣就說明安裝成功了,安裝或者啟動mycat之前

 


免責聲明!

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



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