MyCat+mysql5.7負載均衡

本文由陳超允修改於2017-09-23
本文作者:陳超允chenchaoyun0
  • 前置條件
前一篇文章寫過mysql的主從同步,在此基礎上搭建mysql中間件
mysql安裝在兩臺服務器:ccy001、ccy002,端口都爲3306。ccy001爲主庫,ccy002爲從庫
  • 安裝mycat
#下載
cd /u01/soft
#解壓
tar -zxvf Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz
mv mycat /u01/
cd /u01/mycat/
#創建啓停、查看日誌腳本
touch start.sh stop.sh tailLog.sh
vim start.sh
cd /u01/mycat/bin
./mycat start
vim stop.sh
cd /u01/mycat/bin/
./mycat stop
vim tailLog.sh
cd /u01/mycat
tail -100f logs/wrapper.log
  • 修改基本配置
cd /u01/mycat/conf/
#vim schema.xml
<?xml version="1.0"?>  
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
    <!-- schema 中可以有多個table節點,列幾個在Navicat中就能看到幾個,庫裏有這裏沒有的話客戶端中也看不到 -->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
    </schema>
    <!-- 數據節點 -->
    <dataNode
        name="dn1"
        dataHost="ccy001"
        database="bookmanager" />
    <!-- 節點主機信息 -->
    <dataHost
        name="ccy001"
        maxCon="1000"
        minCon="10"
        balance="0"
        writeType="0"
        dbType="mysql"
        dbDriver="native"
        switchType="1"
        slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- 指定寫入數據的主機 -->
        <writeHost
            host="hostM1"
            url="127.0.0.1:3306"
            user="root"
            password="root123">
            <!-- 指定讀取數據的主機,可以有多個 -->
            <readHost
                host="hostS1"
                url="118.89.222.115:3306"
                user="root"
                password="root123" />
        </writeHost>
    </dataHost>

    <!-- <dataHost name="ccy002" maxCon="1000" minCon="10" balance="0" writeType="0" 
        dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select 
        user()</heartbeat> <writeHost host="hostM2" url="127.0.0.1:3306" user="root" 
        password="root123"> can have multi read hosts <readHost host="hostS2" url="123.206.68.97:3306" 
        user="root" password="root123" /> </writeHost> </dataHost> -->
</mycat:schema>

#vim server.xml
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE mycat:server SYSTEM "server.dtd">  
<mycat:server xmlns:mycat="http://org.opencloudb/">  
    <system>  
    <property name="defaultSqlParser">druidparser</property>  
      <!--  <property name="useCompression">1</property>--> <!--1爲開啓mysql壓縮協議-->  
    <!-- <property name="processorBufferChunk">40960</property> -->  
    <!--   
    <property name="processors">1</property>   
    <property name="processorExecutor">32</property>   
     -->  
        <!--默認是65535 64K 用於sql解析時最大文本長度 -->  
        <!--<property name="maxStringLiteralLength">65535</property>-->  
        <!--<property name="sequnceHandlerType">0</property>-->  
        <!--<property name="backSocketNoDelay">1</property>-->  
        <!--<property name="frontSocketNoDelay">1</property>-->  
        <!--<property name="processorExecutor">16</property>-->  
        <!--   
            <property name="mutiNodeLimitType">1</property> 0:開啓小數量級(默認) ;1:開啓億級數據排序  
            <property name="mutiNodePatchSize">100</property> 億級數量排序批量  
            <property name="processors">32</property> <property name="processorExecutor">32</property>   
            <property name="serverPort">8066</property> <property name="managerPort">9066</property>   
            <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>   
            <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->  
    </system>
    <user name="admin">
            <property name="password">admin</property>
            <property name="schemas">TESTDB</property>
            <!-- 表級 DML 權限設置 -->
            <!--         
            <privileges check="false">
                <schema name="TESTDB" dml="0110" >
                    <table name="tb01" dml="0000"></table>
                    <table name="tb02" dml="1111"></table>
                </schema>
            </privileges>        
             -->
        </user>  
    <user name="mycat">  
        <property name="password">mycat</property>  
        <property name="schemas">TESTDB</property>  
        <property name="readOnly">true</property> 
    </user>  

    <user name="ccyusr">  
        <property name="password">ccyusr</property>  
        <property name="schemas">TESTDB</property>  
        <property name="readOnly">false</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>

#有可能出現啓動異常,內存不夠,修改
vim wrapper.conf
# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
wrapper.java.additional.5=-XX:MaxDirectMemorySize=2G
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
wrapper.java.additional.10=-Xmx1G
wrapper.java.additional.11=-Xms200M

#啓動
sh start.sh
#查看日誌
sh tailLog.sh

  • 測試
用navicat連接,插入數據
分別在ccy001  ccy002  數據庫查看

mycat很多詳細配置需要學習下
關於配置文件,conf目錄下主要以下三個需要熟悉。
server.xml是Mycat服務器參數調整和用戶授權的配置文件
schema.xml是邏輯庫定義和表以及分片定義的配置文件
rule.xml是分片規則的配置文件

連接
mysql -hccy001 -uccyusr -p -P 8066
插入數據  讀取數據測試即可 






















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章