mycat快速搭建入門

  • 2019 年 10 月 6 日
  • 筆記

mycat是一個資料庫中間件,在此不做多介紹,今天我們直接上入門級的搭建demo。

  1. 本例子用的是兩台mysql資料庫
  2. 搭建mycat環境之前確保自己的機器上已經安裝了djk1.7及以上虛擬機,因為mycat是Java寫的中間件,需要Java運行環境。mysql數據支援5.6及更高版本,需要提前安裝好。
  3. 假設以上兩個條件已經滿足(以上環境未搞定,到此結束吧,別往下玩了!),那我們開始進入操作階段:

下載

到改地址 https://github.com/MyCATApache/Mycat-download 下載與自己機器對應的版本,我的機器數Unix。所以下載的是 Mycat-server-1.6-RELEASE-20161028204710-mac.tar.gz

安裝

下載完成後直接解壓文件即可。

配置mycat與實體資料庫的關係

運行vm參數配置

根據自己機器的實際情況配置就好:

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=1024M  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=-Xmx100M  wrapper.java.additional.11=-Xms100M

server.xml 用戶許可權配置

<property name="serverPort">8066</property>  <property name="useZKSwitch">false</property>  <property name="defaultSqlParser">druidparser</property>  <user name="root">      <property name="password">123456</property>      <property name="schemas">dev,testDB</property>  </user>    <user name="user">      <property name="password">user</property>      <property name="schemas">test_user</property>  </user>

mycat默認埠是8806,不使用zk方式鏈接,本次實驗用了兩台MySQL資料庫,一台本機的資料庫用戶名直接用root並指定只有dev、testDB兩個schema,另外一台是遠程機器的資料庫,用了user用戶並指定只能操作test_user這個schema。

schema.xml

<?xml version="1.0"?>  <!DOCTYPE mycat:schema SYSTEM "schema.dtd">  <mycat:schema xmlns:mycat="http://io.mycat/">      <schema name="dev" checkSQLschema="false" sqlMaxLimit="100" dataNode="dev"></schema>      <schema name="testDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="testDB"></schema>      <schema name="test_user" checkSQLschema="false" sqlMaxLimit="100" dataNode="test_user"> </schema>      <dataNode name="dev" dataHost="localhost1" database="dev" />      <dataNode name="testDB" dataHost="localhost1" database="testDB" />      <dataNode name="test_user" dataHost="remote" database="test_user" />      <dataHost name="localhost1" maxCon="100" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">          <heartbeat>select 1</heartbeat>          <writeHost host="hostS1" url="localhost:3306" user="root" password="123456" />      </dataHost>          <dataHost name="remote" maxCon="100" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">          <heartbeat>select 1</heartbeat>          <writeHost host="hostS1" url="192.1168.0.101:3306" user="user" password="user" />      </dataHost>  </mycat:schema>

rule.xml

改配置是分片規則的配置,在這次簡單入門中我們暫時不做分片規則處理。以後有時間再補上。

以上配置好之後,啟動mysql。然後進入mycat安裝目錄下的bin目錄中,啟動mycat服務。

./mycat start 啟動    ./mycat stop 停止    ./mycat console 前台運行    ./mycat install 添加到系統自動啟動(暫未實現)    ./mycat remove 取消隨系統自動啟動(暫未實現)    ./mycat restart 重啟服務    ./mycat pause 暫停    ./mycat status 查看啟動狀態

運行啟動腳本我們可以查看日誌是否啟動成功:

tail -f logs/wrapper.log

啟動成功後我們鏈接mycat:

mysql -uroot -p123456 -h127.0.0.1 -P8806

鏈接上之後就跟mysql操作相同的了。到此已經完美。