天天看點

mycat 簡單實作讀寫分離的方法和步驟

目錄

    • 前言
    • 需求
    • 安裝
      • 安裝jdk
      • 安裝mycat
    • 配置mycat

前言

mycat配置實作讀寫分離,就相當于添加了一個中間件,統一接收用戶端發來的讀取和寫入的請求,将請求分發到主從伺服器上

主伺服器負責處理寫入的資料以及将寫入的資料同步到從伺服器上

從伺服器隻負責讀取的請求

需求

主伺服器(master) 192.168.235.136

從伺服器(slave) 192.168.235.133

mycat伺服器 192.168.235.137

需要配置好主從同步,如果未配置的可以到這裡配置:

https://blog.csdn.net/guoqing2016/article/details/88425633

如果mycat伺服器沒有配置ssh的可以到這裡配置:

https://blog.csdn.net/guoqing2016/article/details/88798913

安裝

安裝jdk

到java官網下載下傳 jdk-8u201-linux-x64.tar.gz解壓上傳到/usr/local目錄

mycat 簡單實作讀寫分離的方法和步驟

修改配置檔案

root@ubuntu: vi /etc/profile
           

在尾部添加:

export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 
           
mycat 簡單實作讀寫分離的方法和步驟

環境配置生效

root@ubuntu: source /etc/profile
           

使用 java -version 檢視是否生效

mycat 簡單實作讀寫分離的方法和步驟

這裡遇到了沒有權限的問題,因為我們的檔案是直接複制上去的,需要去修改權限

mycat 簡單實作讀寫分離的方法和步驟

右鍵選擇屬性菜單

mycat 簡單實作讀寫分離的方法和步驟

将權限改為0777的最高權限,并且勾選循環設定組、擁有者和權限的選項,确定送出

送出後再試一下 java -version

mycat 簡單實作讀寫分離的方法和步驟

jdk成功

安裝mycat

可以去:https://download.csdn.net/download/guoqing2016/11048805 位址下載下傳mycat,或在網上找mycat伺服器的linux版本

下載下傳解壓并上傳到/usr/local目錄下

mycat 簡單實作讀寫分離的方法和步驟

同jdk安裝時一樣需要将權限開啟

mycat 簡單實作讀寫分離的方法和步驟

配置mycat環境變量

root@ubuntu: vi /etc/profile
           

在尾部添加:

export MYCAT_HOME=/usr/local/mycat/
           
mycat 簡單實作讀寫分離的方法和步驟

環境配置生效

root@ubuntu: source /etc/profile
           

修改jdk路徑指向

root@ubuntu: cd /usr/local/mycat/conf
root@ubuntu:/usr/local/mycat/conf# vi wrapper.conf
           
mycat 簡單實作讀寫分離的方法和步驟

配置mycat

修改 server.xml

root@ubuntu:/usr/local/mycat/conf# vi server.xml
           
mycat 簡單實作讀寫分離的方法和步驟

server.xml内不需要修改特别多的東西,隻有兩個最下面的使用者要改,root就是預設使用者,配置好自己的使用者名和密碼即可,schemas這裡是邏輯庫的名字,接下來schema.xml配置要填寫對應的名稱

修改 schema.xml

root@ubuntu:/usr/local/mycat/conf# vi schema.xml
           
mycat 簡單實作讀寫分離的方法和步驟

說明:

<dataNode>  對應資料庫中需要進行讀寫分離的資料庫
<dataHost>  定義具體的資料庫資訊以及一些讀寫分離的配置
着重講一下<dataHost>中的balance屬性:
balance="0", 不開啟讀寫分離機制,所有讀操作都發送到目前可用的writeHost上。
balance="1",全部的readHost與stand by writeHost 參與select語句負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情冴下,M2,S1,S2 都參與select語句的負載
均衡。(類似于balance=3,讀操作隻分發到除了真正的主節點之外的所有節點)
balance="2",所有讀操作都随機的在 writeHost、 readhost 上分發。(常用些,在所有主從節點上分發讀請求)
balance="3",所有讀請求随機的分發到 writeHost 對應的readhost執行,writeHost不負擔讀壓
力,注意 balance=3 叧在 1.4 及其以後版本有,1.3 沒有
<writeHost> 主伺服器的位址及賬号密碼
<readHost>  從伺服器的位址及賬号密碼
           

修改 log4j2.xml

root@ubuntu:/usr/local/mycat/conf# vi log4j2.xml
           

将報錯日志開啟,好看報錯資訊

mycat 簡單實作讀寫分離的方法和步驟

啟動mycat

root@ubuntu:/usr/local/mycat/conf# cd ..
root@ubuntu:/usr/local/mycat# cd bin
root@ubuntu:/usr/local/mycat/bin# ./mycat start
           
mycat 簡單實作讀寫分離的方法和步驟

登入mycat

mycat 簡單實作讀寫分離的方法和步驟

查詢資料庫清單 并連接配接test_schema表(需要在主伺服器上建立好test_schema的資料庫,通過主從同步同步到從伺服器上)

mysql> show databases;
mysql> use test_schema;
           
mycat 簡單實作讀寫分離的方法和步驟

查詢資料庫内的表,現在還沒有表資料表,我們來建立一個

mycat 簡單實作讀寫分離的方法和步驟

建立後我們分别主從伺服器上查詢test_schema資料庫内的表是否也有建立

mycat 簡單實作讀寫分離的方法和步驟

在mycat上插入一條資料,并檢視主從伺服器上是否也有

mycat 簡單實作讀寫分離的方法和步驟
mycat 簡單實作讀寫分離的方法和步驟

看上去是沒錯了,如果不确定是否進行了讀寫分離可以檢視mycat日志

mycat日志位置在mycat/logs/mycat.log

建立的指令是運作在了192.168.235.136也就是我們的主伺服器上

mycat 簡單實作讀寫分離的方法和步驟

查詢清單的指令運作在192.168.235.133也就是我們的從伺服器上

mycat 簡單實作讀寫分離的方法和步驟

到這裡就算是完成mycat讀寫分離的配置了,如果遇到其他問題請在下方留言,部落客每天都會檢視評論資訊的 0_0

繼續閱讀