案例
溫馨提示:Mysql讀寫分離是以主從複制為前提的,關于此請參考上期教程搭建Mysql主從複制叢集 實驗環境,關閉防火牆,setenfoce設定為寬容模式,三台伺服器搭建好主從複制叢集
推薦步驟
溫馨提示: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指令如下圖顯示:
翻譯:您同意上述許可條款嗎?,輸入:yes
按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
完成,檢視版本資訊
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安裝成功:
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
(2)編輯dbServer.xml配置檔案vim /usr/local/amoeba/conf/dbServers.xml
(3)啟動amoeba軟體(加&放在背景運作)
檢視其監聽端口
4、 測試
①在Linux系統client主機
安裝mysql用戶端程式 yum -y install mariadb
通過代理通路 mysql mysql -u amoeba -p123456 -h 192.168.2.1 -P8066 (-P為大寫)
②在master上建立一個表,同步到各個從伺服器上,然後關掉各從伺服器的slave功能,再插入差別語句
③分别在兩台從伺服器上
④然後在主伺服器上插入資料
⑤從伺服器同步了表,手動插入其他内容
slave1
slave2
⑥測試讀操作
在client主機上第一次查詢的結果如下:
第二次查詢結果如下:
第三次查詢的結果如下:
在master測試寫操作
但是在客戶機上查詢不到