MySQL Proxy LUA安裝和使用教程

來源:互聯網
上載者:User

MySQL Proxy LUA安裝和使用教程是本文要介紹的內容,主要是來瞭解MySQL Proxy LUA的學習技巧,具體內容來看本文詳解。

按照手冊安裝MySQL Proxy之前先要安裝以下軟體

 
  1. libevent1.xorhigher(1.3borlaterispreferred)  
  2. lua5.1.xorhigher  
  3. glib22.6.0orhigher  
  4. pkg-config  
  5. libtool1.5orhigher  
  6. MySQL5.0.xorhigherdeveloperfiles  
  7.  
  8. rpm查看libevent  
  9. rpm-qlibevent  
  10. libevent-1.1a-3.2.1 

勉強用吧,家下來安裝lua

 
  1. tarxvzflua-5.1.4.tar.gz  
  2. cdlua-5.1.4  
  3. makelinux  
  4. makeinstall  
  5. cpetc/lua.pc/usr/local/lib/pkgconfig/ 

之後安裝MySQLProxy按轉世繼續報錯,呵呵,雖然手冊上對於glib2寫的版本是2.6.0及以後實際在MySQLProxy0.7.2上是要求>2.16的,繼續升級glib2

 
  1. tarxvzfglib-2.23.0.tar.gz  
  2. cdglib-2.23.0  
  3. ./configure  
  4. make  
  5. makeinstall 

然後提示安裝libevent版本過低,暈了

 
  1. tarxvzflibevent-1.4.13-stable.tar.gz  
  2. cdlibevent-1.4.13-stable  
  3. ./configure  
  4. make  
  5. makeinstall 

這次再去安裝MySQLProxy

 
  1. tarzxfmysql-proxy-0.7.2.tar.gz  
  2. cdmysql-proxy-0.7.2  
  3. ./configurewith-mysql=/usr/local/mysql/bin/mysql_configwith-lua  
  4. make  
  5. makeinstall 

預設的mysql-proxy被安裝到/usr/local/sbin/mysql-proxy而lua執行個體指令碼則在/usr/local/share/doc下(不過好像需要之前maketest才有,不確定).

查看下MySQLProxy的版本

mysql-proxy-V
mysql-proxy:errorwhileloadingsharedlibraries:/usr/local/lib/libmysql-chassis.so.0:cannotrestoresegmentprotafterreloc:Permissiondenied

報錯,這是SELinux的問題,可如下解決

 
  1. chcon-ttexrel_shlib_t/usr/local/lib/libmysql-chassis.so.0  
  2.  
  3. mysql-proxy-V  
  4. mysql-proxy0.7.2  
  5. glib2:2.23.0  
  6. libevent:1.4.13-stable  
  7. lua:Lua5.1.4  
  8. LUA_PATH:/usr/local/lib/mysql-proxy/lua/?.lua  
  9. LUA_CPATH:/usr/local/lib/mysql-proxy/lua/?.so  
  10. 2009-12-1800:05:34:(warning)g_set_prgname()calledmultipletimes 
  11. ==plugins==  
  12. admin:0.7.0  
  13. proxy:0.7.0 

至此MySQLProxy安裝完成,記住LUA_PATH:/usr/local/lib/mysql-proxy/lua/?.lua下面要用到

啟動,編譯啟動指令碼,

 
  1. vi/etc/init.d/mysql-proxy  
  2.  
  3. #!/bin/sh  
  4. exportLUA_PATH=/usr/local/lib/mysql-proxy/lua/?.lua  
  5.  
  6. mode=1 
  7. if[-z"mode"];then  
  8. mode="start" 
  9. fi  
  10.  
  11. casemodein  
  12. 'start')  
  13. mysql-proxydaemon/  
  14. admin-address=:4401/  
  15. proxy-address=:3307/  
  16. proxy-backend-addresses=:3306/  
  17. proxy-read-only-backend-addresses=192.168.133.232:3306/  
  18. proxy-read-only-backend-addresses=10.10.74.61:3306/  
  19. proxy-lua-script=/usr/local/share/doc/mysql-proxy/rw-splitting.lua  
  20. ;;  
  21.  
  22. 'stop')  
  23. killallmysql-proxy  
  24. ;;  
  25.  
  26. 'restart')  
  27. if0stop;then  
  28. 0start  
  29. else  
  30. echo"retartfailed!!!"  
  31. exit1  
  32. fi  
  33. ;;  
  34. esac  
  35. exit0 

現在解釋一下啟動指令碼:

 
  1. daemon採用daemon方式啟動  
  2. admin-address=:4401指定mysqlproxy的管理連接埠,在這裡,表示原生4401連接埠  
  3. proxy-address=:3307指定mysqlproxy的監聽連接埠,也可以用127.0.0.1:3307表示  
  4. proxy-backend-addresses=:3306指定mysql主機的連接埠  
  5. proxy-read-only-backend-addresses=192.168.1.1:3306指定唯讀mysql主機連接埠  
  6. proxy-read-only-backend-addresses=192.168.1.2:3306指定另一個唯讀mysql主機連接埠  
  7. proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua指定lua指令碼,在這裡,使用的是rw-splitting指令碼,用於讀寫分離 

(以上指令碼內容摘自葉金榮blog)

googlecode上也有mysql-proxy指令碼也可以下下來修改使用

 
  1. wgethttp://customcode.googlecode.com/files/mysql-proxy 

完整的參數可以運行以下命令查看:

 
  1. mysql-proxyhelp-all 

之後可以通過以下命令啟動|停止|重啟

 
  1. /etc/init.d/mysql-proxystart  
  2. /etc/init.d/mysql-proxystop  
  3. /etc/init.d/mysql-proxyrestart 

居然提示許可權不夠,不過簡單

 
  1. chmod+x/etc/init.d/mysql-proxy 

這樣該ok了把,可能會報錯類似於:

 
  1. /etc/init.d/mysql-proxystart  
  2. 2009-12-1801:59:52:(warning)g_set_prgname()calledmultipletimes  
  3. 2009-12-1801:59:52:(critical)chassis.c:981:couldnotraiseRLIMIT_NOFILEto8192,Invalidargument(22).Currentlimitstill13815894353589044224. 

這個一個警告層級的錯誤,意思是MySQLProxy在你的系統上不能把openfileslimit提升到8192,不過沒關係的,MySQLProxy依然好好的運行在你的電腦上.

 
  1. mysql-h127.0.0.1-uroot-p-P3307  
  2. Enterpassword:  
  3. WelcometotheMySQLmonitor.Commandsendwith;or/g.  
  4. YourMySQLconnectionidis6  
  5. Serverversion:5.1.40-blang-debug-logSourcedistribution  
  6. Type'help;'or'/h'forhelp.Type'/c'toclearthecurrentinputstatement.  

可以看到,產生了一個新串連。

小結:MySQL Proxy LUA安裝和使用教程的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.