Linux 使用Mycat實現Mysql讀寫分離

一、什麼是讀寫分離

    Mysql實現主從複製後,同時也需要實現讀寫分離,讀寫分離的處理就是主庫處理事務性增、刪、改操作,而從庫僅用於數據查詢讀取。實現讀寫分離需要藉助其他中間件,下面就介紹Mycat中間件實現讀寫分離

   

二、Mycat的安裝

 1、安裝java環境包

yum install java-1.8.0-openjdk.x86_64

2、下載mycat

wget http://dl.mycat.org.cn/1.6.7.6/20211221142218/Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz

3、解壓mycat包

tar -zxvf Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz

4、mycat安裝授權處理

//剪切到/usr/local下
mv mycat /usr/local/
//創建專門運行mycat賬號
adduser mycat
// 切換到mycat文件夾路徑下
cd /usr/local
//將文件權限賦給mycat賬號
chown mycat:mycat -R mycat

5、進入profile配置環境變量並添加

//進入文件
vim /etc/profile
//配置環境變量
export JAVA_HOME=/usr 
export MYCAT_HOME=/usr/local/mycat
//刷新環境變量文件
source /etc/profile
//切換mycat用戶
su mycat
//切換目錄
cd /usr/local/mycat/bin/

6、啓動mycat

//啓動mycat
./mycat start
//查看狀態
./mycat status
//查看啓動輸出
/usr/local/mycat/bin/mycat console(查看mycar輸出日誌)

7、切換到mycat根目錄,查看目錄文件

//切換到mycat根目錄
cd /usr/local/mycat
//查看目錄文件
ll

三、Mycat讀寫分離配置

1、進到conf文件夾裏面查看配置文件

cd conf

2、vim進入schema.xml進行編輯配置

vim /usr/local/mycat/conf/schema.xml

分片配置:Schema裏面包含table配置,指定需要的數據庫表名,配置dataNode後,randomDataNode="dn1"可要可不要

非分片配置:Schema不指定table,schema必須指定配置dataNode ,否則會提示找不到節點,配置dataNode後,randomDataNode="dn1"可要可不要

  schema文件配置說明:

balance指的負載均衡類型,目前的取值有4種:
1. balance=”0”, 不開啓讀寫分離機制,所有讀操作都發送到當前可用的writeHost上。
2. balance=”1”,全部的readHost與stand bywriteHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,並且M1與 M2互爲主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。
3. balance=”2”,所有讀操作都隨機的在writeHost、readhost上分發。
4. balance=”3”,所有讀請求隨機的分發到wiriterHost對應的readhost執行,writerHost不負擔讀壓力
注意:balance=3只在1.4及其以後版本有,1.3沒有。
————————————————
writeType屬性:
1.writeType=”0”,所有寫操作發送到配置的第一個writeHost,第一個掛了切到還生存的第二個writeHost,重新啓動後以切換後的爲準,切換記錄在配置文件中:dnindex.properties.
2.writeType=”1”,所有寫操作都隨機地發送到配置的writeHost,1.5以後廢棄不推薦。
————————————————
switchType指的是切換的模式,目前的取值也有4種:
1. switchType=’-1’ 表示不自動切換
2. switchType=’1’ 默認值,表示自動切換
3. switchType=’2’ 基於MySQL主從同步的狀態決定是否切換,心跳語句爲 show slave status
4. switchType=’3’基於MySQLgalary cluster的切換機制(適合集羣)(1.4.1),心跳語句爲 show status like ‘wsrep%’。
————————————————

3、配置server.xml

vim /usr/local/mycat/conf/server.xml

4、配置完成,重啓mycat服務

//切換路徑
cd /usr/local/mycat/bin
//重啓
./mycat restart

5、進入mycat數據庫

mysql -uroot -h ip -P3310 -p --default_auth=mysql_native_password

 6、切換數據庫

//進入邏輯庫
use SLAVEDEMO;
//查看邏輯庫table
show tables;
//切換至mycat日誌目錄
cd /usr/local/mycat/logs/
//實時查看mycat日誌
tail -f mycat.log

 

 

7、使用navicat鏈接mycat邏輯庫

 

 8、mycat數據庫測試

到此爲止,mycat配置mysql讀寫分離完成。

配置完成後,我們項目裏面的鏈接是直接使用mycat鏈接,不論是建表還是操作都可以使用mycat鏈接,執行順序爲mycat邏輯數據庫->同步到主庫->同步到從庫。也可以直接在主庫建表,都會同步到mycat邏輯庫裏面。

參考文獻:https://blog.csdn.net/qq_35992900/article/details/80673889

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