MySQL Proxy LUA安裝和使用教程
MySQL Proxy LUA安裝和使用教程是本文要介紹的內容,主要是來了解MySQL Proxy LUA的學習技巧,具體內容來看本文詳解。
按照手冊安裝MySQL Proxy之前先要安裝以下軟件
- libevent1.xorhigher(1.3borlaterispreferred)
- lua5.1.xorhigher
- glib22.6.0orhigher
- pkg-config
- libtool1.5orhigher
- MySQL5.0.xorhigherdeveloperfiles
- rpm查看libevent
- rpm-qlibevent
- libevent-1.1a-3.2.1
勉強用吧,家下來安裝lua
- tarxvzflua-5.1.4.tar.gz
- cdlua-5.1.4
- makelinux
- makeinstall
- cpetc/lua.pc/usr/local/lib/pkgconfig/
之后安裝MySQLProxy按轉世繼續(xù)報錯,呵呵,雖然手冊上對于glib2寫的版本是2.6.0及以后實際在MySQLProxy0.7.2上是要求>2.16的,繼續(xù)升級glib2
- tarxvzfglib-2.23.0.tar.gz
- cdglib-2.23.0
- ./configure
- make
- makeinstall
然后提示安裝libevent版本過低,暈了
- tarxvzflibevent-1.4.13-stable.tar.gz
- cdlibevent-1.4.13-stable
- ./configure
- make
- makeinstall
這次再去安裝MySQLProxy
- tarzxfmysql-proxy-0.7.2.tar.gz
- cdmysql-proxy-0.7.2
- ./configurewith-mysql=/usr/local/mysql/bin/mysql_configwith-lua
- make
- 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的問題,可如下解決
- chcon-ttexrel_shlib_t/usr/local/lib/libmysql-chassis.so.0
- mysql-proxy-V
- mysql-proxy0.7.2
- glib2:2.23.0
- libevent:1.4.13-stable
- lua:Lua5.1.4
- LUA_PATH:/usr/local/lib/mysql-proxy/lua/?.lua
- LUA_CPATH:/usr/local/lib/mysql-proxy/lua/?.so
- 2009-12-1800:05:34:(warning)g_set_prgname()calledmultipletimes
- ==plugins==
- admin:0.7.0
- proxy:0.7.0
至此MySQLProxy安裝完成,記住LUA_PATH:/usr/local/lib/mysql-proxy/lua/?.lua下面要用到
啟動,編譯啟動腳本,
- vi/etc/init.d/mysql-proxy
- #!/bin/sh
- exportLUA_PATH=/usr/local/lib/mysql-proxy/lua/?.lua
- mode=1
- if[-z"mode"];then
- mode="start"
- fi
- casemodein
- 'start')
- mysql-proxydaemon/
- admin-address=:4401/
- proxy-address=:3307/
- proxy-backend-addresses=:3306/
- proxy-read-only-backend-addresses=192.168.133.232:3306/
- proxy-read-only-backend-addresses=10.10.74.61:3306/
- proxy-lua-script=/usr/local/share/doc/mysql-proxy/rw-splitting.lua
- ;;
- 'stop')
- killallmysql-proxy
- ;;
- 'restart')
- if0stop;then
- 0start
- else
- echo"retartfailed!!!"
- exit1
- fi
- ;;
- esac
- exit0
現在解釋一下啟動腳本:
- daemon采用daemon方式啟動
- admin-address=:4401指定mysqlproxy的管理端口,在這里,表示本機的4401端口
- proxy-address=:3307指定mysqlproxy的監(jiān)聽端口,也可以用127.0.0.1:3307表示
- proxy-backend-addresses=:3306指定mysql主機的端口
- proxy-read-only-backend-addresses=192.168.1.1:3306指定只讀的mysql主機端口
- proxy-read-only-backend-addresses=192.168.1.2:3306指定另一個只讀的mysql主機端口
- proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua指定lua腳本,在這里,使用的是rw-splitting腳本,用于讀寫分離
(以上腳本內容摘自葉金榮blog)
googlecode上也有mysql-proxy腳本也可以下下來修改使用
- wgethttp://customcode.googlecode.com/files/mysql-proxy
完整的參數可以運行以下命令查看:
- mysql-proxyhelp-all
之后可以通過以下命令啟動|停止|重啟
- /etc/init.d/mysql-proxystart
- /etc/init.d/mysql-proxystop
- /etc/init.d/mysql-proxyrestart
居然提示權限不夠,不過簡單
- chmod+x/etc/init.d/mysql-proxy
這樣該ok了把,可能會報錯類似于:
- /etc/init.d/mysql-proxystart
- 2009-12-1801:59:52:(warning)g_set_prgname()calledmultipletimes
- 2009-12-1801:59:52:(critical)chassis.c:981:couldnotraiseRLIMIT_NOFILEto8192,Invalidargument(22).Currentlimitstill13815894353589044224.
這個一個警告級別的錯誤,意思是MySQLProxy在你的系統上不能把openfileslimit提升到8192,不過沒關系的,MySQLProxy依然好好的運行在你的電腦上.
- mysql-h127.0.0.1-uroot-p-P3307
- Enterpassword:
- WelcometotheMySQLmonitor.Commandsendwith;or/g.
- YourMySQLconnectionidis6
- Serverversion:5.1.40-blang-debug-logSourcedistribution
- Type'help;'or'/h'forhelp.Type'/c'toclearthecurrentinputstatement.
可以看到,產生了一個新連接。
小結:MySQL Proxy LUA安裝和使用教程的內容介紹完了,希望通過本文的學習能對你有所幫助!