mysql-proxy讀寫分離

mysql-proxy讀寫分離html

準備工做:mysql-proxy代理服務器(192.168.217.151),主服務器(192.168.217.217.148)負責寫,從服務器1(192.168.217.149),從服務器2(192.168.217.150mysql

                 在配置讀寫分離以前先主從複製,以前已經配置好主從文章:https://www.cnblogs.com/cx558/p/9476502.htmllinux

一、安裝mysql-proxy(151服務器上)sql

      下載:http://dev.mysql.com/downloads/mysql-proxy/   最新版本是mysql-proxy-0.8.5數據庫

   tar zxvf mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz後端

  mv mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy服務器

 

二、配置mysql-proxy,建立主配置文件 [特別注意配置文件要先後不能有空格,否則就會報錯,搭建失敗]ide

cd /usr/local/mysql-proxy
mkdir lua #建立腳本存放目錄
mkdir logs #建立日誌目錄
cp share/doc/mysql-proxy/rw-splitting.lua ./lua #複製讀寫分離配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua #複製管理腳本
vi /etc/mysql-proxy.cnf   #建立配置文件
 
[mysql-proxy]
user=root
#運行mysql-proxy用戶
admin-username=root
#主從mysql共有的用戶
admin-password=root111111
#用戶的密碼
proxy-address=192.168.217.151:4000
#mysql-proxy運行ip和端口,不加端口,默認4040
proxy-read-only-backend-addresses=192.168.217.149
#指定後端從slave讀取數據
proxy-read-only-backend-addresses=192.168.217.150
#指定後端從slave讀取數據
proxy-backend-addresses=192.168.217.148
#指定後端主master寫入數據
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
#指定讀寫分離配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
#指定管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
#日誌位置
log-level=info
#定義log日誌級別,由高到低分別有(error|warning|info|message|debug)
daemon=true
#以守護進程方式運行
keepalive=true
#mysql-proxy崩潰時,嘗試重啓
 
保存退出!
chmod 660 /etc/mysql-proxy.cnf
 
三、修改讀寫分離配置文件 
 
vi /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
  proxy.global.config.rwsplit {
   min_idle_connections 1#默認超過4個鏈接數時,纔開始讀寫分離,改成1
   max_idle_connections 1#默認8,改成1
   is_debug false
  }
end
 
四、啓動mysql-proxy【關閉mysql-proxy使用:killall -mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
netstat -tupln grep 4000 #查看端口是否啓動,若成功會顯示端口信息
 
五、測試讀寫分離
 1.在主服務器和從服務器都建立proxy用戶用於mysql-proxy使用(148,149,150),執行三次下邊的代碼
mysql -uroot -proot111111; #進入mysql,你本身配置的mysql用戶密碼
mysqlgrant all on *.to 'root'@'192.168.217.151' identified by 'root111111';
 
2>.使用客戶端鏈接mysql-proxy(或者直接登陸mysql工具登陸)
mysql -u root -h 192.168.217.151 -P 4000 -p  #再輸入密碼 root111111;  而後加入數據。
 
或mysql工具登陸,而後隨便加點數據,看看148主服務器有沒有寫進去。

 數據同步寫人沒有問題。工具

 

 

 3.關閉 149(從讀)數據庫,修改一下 150(從讀)的數據,登陸mysql-proxy 查詢,會查詢到 150(從讀)的數據,再關閉 150(從讀)數據庫,登陸mysql-proxy 查詢會查詢到主數據 148(主寫)的數據。
 
   service mysql stop[restart]#開啓,重啓   stop[start] slave # 關閉[開啓]同步進程
 
到此讀寫分離已經,配置完成了。
提示:
proxy-read-only-backend-addresses=192.168.217.149#指定後端從slave讀取數據
proxy-read-only-backend-addresses=192.168.217.150#指定後端從slave讀取數據
這裏配置兩個從數據庫,當你讀取mysql-proxy代理時,會先讀取第一個149的數據,若是149掛了,再會讀150庫的數據。兩個都掛了讀主數據數據148
相關文章
相關標籤/搜索