天天看點

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

案例

溫馨提示:Mysql讀寫分離是以主從複制為前提的,關于此請參考上期教程​​搭建Mysql主從複制叢集​​ 實驗環境,關閉防火牆,setenfoce設定為寬容模式,三台伺服器搭建好主從複制叢集

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

推薦步驟

溫馨提示:amoeba建議java環境是1.5或1.6,centos7預設是1.8,示範降到1.6版本

例如:

1、amoeba伺服器安裝java環境

将下載下傳的jdk包上傳到/usr/local,進入目錄
[root@centos1 ~]# cd /usr/local/
設定執行權限
[root@centos1 ~]# chmod +x /usr/local/jdk-6u14-linux-x64.bin 
執行安裝(閱讀條款,一直确定即可)
[root@centos1 local]# ./jdk-6u14-linux-x64.bin  //根據提示按回車和yes即可      

執行./jdk-6u14-linux-x64.bin指令如下圖顯示:

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集
玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

翻譯:您同意上述許可條款嗎?,輸入:yes

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

按Enter繼續,最後出現done表示好了。

優化

說明:CLASSPATH指定java類搜尋路徑(小程式),要使用已經編寫好java的類,前提當然是能夠找到它們,JVM就是通過CLASSPATH來尋找類的。

[root@centos1 local]# vim  /etc/profile
export  JAVA_HOME=/usr/local/jdk1.6  //指向jdk的安裝路徑
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin
[root@centos1 local]# mv jdk1.6.0_14/  /usr/local/jdk1.6
[root@centos1 local]# source /etc/profile      

完成,檢視版本資訊

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

2、 安裝并配置amoeba軟體

建立amoeba專用目錄
[root@centos1 local]# mkdir /usr/local/amoeba
解壓到此目錄
[root@centos1 local]# tar zxf  /mnt/amoeba-mysql-binary-2.2.0.tar.gz  -C  /usr/local/amoeba
為目錄設定權限
[root@centos1 local]# chmod -R 755 /usr/local/amoeba/
驗證amoeba有沒安裝成功
[root@centos1 local]# amoeba      

驗證amoeba有沒安裝成功,看到如圖提示代表amoeba安裝成功:

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

3、 配置amoeba讀寫分離,兩個slave讀負載均衡

①分别在master、slave1和slave2中開放權限給amoeba通路

mysql> grant all on . to ‘test’@‘192.168.2.%’ identified by ‘123.com’;

②amoeba代理伺服器配置

(1)編輯amoeba.xml配置檔案(注意:不同主機,配置檔案行數可能不一樣,更改劃線部分)

vim /usr/local/amoeba/conf/amoeba.xml

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集
玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

(2)編輯dbServer.xml配置檔案vim /usr/local/amoeba/conf/dbServers.xml

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集
玩轉Linux系統之輕松搭建Mysql讀寫分離叢集
玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

(3)啟動amoeba軟體(加&放在背景運作)

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

檢視其監聽端口

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

4、 測試

①在Linux系統client主機

安裝mysql用戶端程式 yum -y install mariadb

通過代理通路 mysql mysql -u amoeba -p123456 -h 192.168.2.1 -P8066 (-P為大寫)

②在master上建立一個表,同步到各個從伺服器上,然後關掉各從伺服器的slave功能,再插入差別語句

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

③分别在兩台從伺服器上

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

④然後在主伺服器上插入資料

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

⑤從伺服器同步了表,手動插入其他内容

slave1

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

slave2

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

⑥測試讀操作

在client主機上第一次查詢的結果如下:

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

第二次查詢結果如下:

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

第三次查詢的結果如下:

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

在master測試寫操作

玩轉Linux系統之輕松搭建Mysql讀寫分離叢集

但是在客戶機上查詢不到

繼續閱讀