使用自帶模板監控mysql
阿新 • • 發佈:2021-12-17
下載安裝
[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