1. 程式人生 > 其它 >使用自帶模板監控mysql

使用自帶模板監控mysql

下載安裝

下載地址:http://dl.mycat.org.cn/

[root@dlb local]# tar -zxvf Mycat-server-1.6.7.6-release-20210930213049-linux.tar.gz -C /usr/local/    #解壓到這個目錄下
#加壓既安裝

配置檔案

①schema.xml:定義邏輯庫,表、分片三個節點等內容

<!-- 讀寫分離分庫分表都在這裡配置 -->

<!-- 檢查SQL,設定為false ,有可能是很多種類的資料表,不僅僅是mysql-->
    <schema name="mycatdb" checkSQLschema
="false" sqlMaxLimit="100" randomDataNode="dn1"> <!-- auto sharding by id (long) --> <!--splitTableNames 啟用<table name 屬性使用逗號分割配置多個表,即多個表使用這個配置--> <!--fetchStoreNodeByJdbc 啟用ER表使用JDBC方式獲取DataNode dataNode:拆分後的切片 和中間的dataNode標籤名保持一致 rule: 拆分規則,可以自定義
--> <table name="customer" primaryKey="id" dataNode="dn1,dn2" rule="test-rule" autoIncrement="true" fetchStoreNodeByJdbc="true"> <childTable name="customer_addr" primaryKey="id" joinKey="customer_id" parentKey="id"> </childTable> </table> <!--
<table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <!-- name:和table標籤的dataNode保持一致 dataHost:讀寫分離的主機地址,此引數向下面的datahost標籤傳入 database: --> <dataNode name="dn1" dataHost="localhost1" database="msa" /> <dataNode name="dn2" dataHost="localhost1" database="msb" /> <!-- balance:讀請求的負載均衡 0:不開啟讀寫分離,所有的讀操作 都發送到writehost中 1:全部的readhost 和stand by writehost都參與讀操作的負載均衡 在多寫多讀下,除了啟用狀態下的寫,其他節點統一按照讀節點用 2:讀請求,隨機給讀寫節點,一般不用 3:讀請求隨機發給寫主機中的讀機,寫機不參與讀請求-——推薦 writeType:寫請求的負載均衡 0:寫請求先發給schema.xml的第一個writeHost標籤配置的,第一個掛了發給第二個,一次向下,切換的日誌會記錄conf/dnindex.properties-——【推薦0】 1:寫請求隨機發送到所有的寫機中 switchType:書否允許讀操作,在讀機和寫機上自動切換,解決延遲問題【當從寫機中出現卡住(網路等問題)自動從寫中讀資料】 -1:不允許 1:預設允許 2:根據“主從同步的狀態”自動選擇是否切換。心跳(延遲,心跳要傳送延遲資訊)【推薦】 --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="2" slaveThreshold="100"> <!-- 用來確認大哥和小弟是否都存活 此時改為了傳送延遲資訊。--> <heartbeat>select slave status</heartbeat> <!-- can have multi write hosts --> <!-- 主機為寫,從機為讀 --> <writeHost host="master1" url="jdbc:mysql://47.101.165.96:3306" user="admin" password="Amanda+3213"> <readHost host="slave1" url="jdbc:mysql://47.97.32.153:3306" user="admin" password="Amanda+3213"/> </writeHost> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost>

②rule.xml:定義分片規則

<!-- 平均拆分     name和schema裡設定的一致,可自定義   -->
    <tableRule name="test-rule">
        <rule>
            <columns>id</columns>
            <algorithm>mod-long</algorithm>
        </rule>
    </tableRule>
<!-- 平均拆分的方法 -->
    <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
        <!-- how many data nodes -->
        <!-- 切成幾份? -->
        <property name="count">2</property>
    </function>

③server.xml:定義使用者以及系統相關變數,如埠等

<!-- 登入mycat的賬號和密碼 -->
    <user name="mycat1" defaultAccount="true">
        <property name="password">123456</property>
        <!-- 邏輯庫,中間可以用,逗號隔開表示多個邏輯庫 -->
        <property name="schemas">mycatdb</property>
        <property name="defaultSchema">TESTDB</property>
        <!--No MyCAT Database selected 錯誤前會嘗試使用該schema作為schema,不設定則為null,報錯 -->
        
        <!-- 表級 DML 許可權設定 -->
        <!-- 這個地方是設定表許可權的的 0代表關閉,1代表可以操作,分別是增刪改查 -->
        <!--         
        <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="user">
        <property name="password">user</property>
        <property name="schemas">mycatdb</property>
        <property name="readOnly">true</property>
        <property name="defaultSchema">mycatdb</property>
    </user>

管理

#下面命令必須切換到mycat的bin目錄下執行  預設埠號 8066
./mycat start #啟動
./mycat stop  #停止
./mycat status #檢視狀態
./mysql-umycat -p -
./mysql -uroot -p123456 -P8066