小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Mysql-proxy主從搭建讀寫分離全過程

 用勿龍潛 2011-12-29

Mysql-proxy主從搭建讀寫分離全過程

廢話不說!

Mysql-proxy是什么,大家都知道,不知道的就別往下看了...
首先搭建 mysql 主從數(shù)據(jù)庫,參考: http://blog.csdn.net/swengineer/archive/2011/03/11/6239711.aspx

下載 mysql-proxy 最新版,本文撰寫時最新版本為 MySQL Proxy 0.8.1 alpha

安裝 mysql-proxy 步驟如下:

解壓 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz

Java代碼 復(fù)制代碼 收藏代碼
  1. tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz   
  2.   
  3. cp -R mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql  


新建或編輯 /etc/mysql-proxy.cnf 文件,添加以下內(nèi)容 ( 具體參數(shù)根據(jù)實際情況修改 ) :

Java代碼 復(fù)制代碼 收藏代碼
  1. vi /etc/mysql-proxy.cnf   
  2.   
  3. [mysql-proxy]   
  4.   
  5. admin-username = zhangdongyu   
  6.   
  7. admin-password = 123123  
  8.   
  9. daemon = true  
  10.   
  11. keepalive = true  
  12.   
  13. proxy-backend-addresses = 192.168.0.88:3306  
  14.   
  15. proxy-read-only-backend-addresses = 192.168.0.88:3307  
  16.   
  17. proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua   
  18.   
  19. admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua   
  20.   
  21. log-file = /usr/local/proxy-mysql/cn.log   
  22.   
  23. log-level = debug  

 

主要參數(shù)注解:


proxy-backend-addresses                    mysql 主庫(寫)地址

proxy-read-only-backend-addresses     mysql 從庫(讀)地址

proxy-lua-script                                 讀寫分離腳本

admin-lua-script                                 admin 腳本

admin-username                                 數(shù)據(jù)庫用戶名(主從上都需建立相同用戶)

admin-password                                 數(shù)據(jù)庫密碼

daemon                                             daemon 進(jìn)程運行

keepalive                                           保持連接(啟動進(jìn)程會有 2 個,一號進(jìn)程用來監(jiān)視二號進(jìn)行,如果二號進(jìn)程死掉自動重建,此參數(shù)在舊版本中無法使用)

編輯 profile/.bash_profile 腳本

Java代碼 復(fù)制代碼 收藏代碼
  1. vi /etc/profile( 或者 .bash_profile)   
  2.   
  3. LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"  
  4.   
  5. export LUA_PATH   
  6.   
  7. export PATH=$PATH:/usr/local/proxy-mysql/bin   
  8.   
  9. :wq   
  10.   
  11. source /etc/profile  

 

為方便建立建立 mysql-proxy.sh 腳本

Java代碼 復(fù)制代碼 收藏代碼
  1. #!/bin/bash   
  2.   
  3. mode=$1  
  4.   
  5. if [ -z "$mode" ] ; then   
  6.   
  7. mode="start"  
  8.   
  9. fi   
  10.   
  11. case $mode in   
  12.   
  13. start)   
  14.   
  15. mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &   
  16.   
  17. ;;   
  18.   
  19. stop)   
  20.   
  21. killall -9 mysql-proxy   
  22.   
  23. ;;   
  24.   
  25. restart)   
  26.   
  27. if $0 stop ; then   
  28.   
  29. $0 start   
  30.   
  31. else  
  32.   
  33. echo  "Restart failed!"  
  34.   
  35. exit 1  
  36.   
  37. fi   
  38.   
  39. ;;   
  40.   
  41. esac   
  42.   
  43. exit 0   
 

啟動 mysql-proxy

sh 腳本

啟動: ./mysql-proxy.sh  ./mysql-proxy.sh start

 

重啟: ./mysql-proxy.sh restart

停止: ./mysql-proxy.sh stop

 

測試:

為達(dá)到測試效果,修改 admin-sql.lua 腳本以下兩行

vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua

Java代碼 復(fù)制代碼 收藏代碼
  1. if not proxy.global.config.rwsplit then   
  2.   
  3.         proxy.global.config.rwsplit = {   
  4.   
  5.                 min_idle_connections = 1,   # 修改最小連接為 1  
  6.   
  7.                 max_idle_connections = 2,   # 修改最大連接為 2  
  8.   
  9.                 is_debug = true            #debug 為 true  
  10.   
  11.         }   
  12.   
  13. end   

 

重啟 mysql-proxy 代理

開啟兩個終端分別連接代理:

ONE ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040

TWO ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040

可看到連接成功信息:

 

操作 ONE 客戶端:

執(zhí)行 select 語句觀察數(shù)據(jù)庫 log 文件

select * from z_member_info;

觀察主從庫日志文件,發(fā)現(xiàn)查詢發(fā)生在主庫?

主庫: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql/localstate/mysqlexecute.log

 

這是因為 mysql-proxy 代理會檢測客戶端連接,當(dāng)連接沒有超過 min_idle_connections 預(yù)設(shè)值時,不會進(jìn)行讀寫分離,即查詢操作會發(fā)生到主庫上。

 

操作 TWO 客戶端:

執(zhí)行 select 語句觀察數(shù)據(jù)庫 log 文件

select * from z_member_info;

觀察主從庫日志文件,發(fā)現(xiàn)主庫沒有任何記錄,查詢?nèi)罩居涗浽趶膸臁?/SPAN>

從庫: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql3307/localstate/mysqlexecute.log

 

操作兩個終端進(jìn)行 insert 操作,會發(fā)現(xiàn)寫操作始終被主庫( 3306 )日志文件記錄。

 

至此 mysql-proxy 安裝測試完成。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多