mysql-proxy 安裝與使用
由於工作需要,要將mysql主從數據庫讀寫分離,採取官方mysql-proxy代理程序來實現.在安裝時遇到一些問題,多謝深夜的蚊子幫助。
環境:
OS:Centos 5.3
software:
lua-5.1.4.tar.gz
mysql-proxy-0.6.1.tar
mysql-devel.i386
libevent-devel.i386
1、lua安裝
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
make linux
make install
2、mysql-proxy 安裝
export LUA_LIBS="-L/usr/local/lib/lua/5.1/ -llua -lm"
export LUA_CFLAGS=" "
yum install mysql-devel.i386 #安裝mysql開發包,不然在編譯mysql-proxy時會出錯
yum install libevent-devel.i386 #安裝libevent開發包
./configure --prefix=/usr/local/mysql-proxy LDFLAGS="-ldl"
make
make install
3、使用
export PATH=$PATH:/usr/local/mysql-proxy/sbin/
啓動參數
mysql-proxy --proxy-read-only-backend-addresses=192.168.1.11:3306 --proxy-backend-addresses=192.168.1.12:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua&
參數說明:
--proxy-read-only-backend-addresses -- remote slave-server(只讀服務器)
--proxy-backend-addresses -- master-server(寫服務器)
--proxy-lua-script -- lua script(讀寫分離腳本)
mysql-proxy 啓動成功,使用nestat -ntl查看本機端口,將會出現4040與4041這個TCP端口。4040是mysql-proxy連接端口,4041爲mysql-proxy管理端口
[root@ mysql]# netstat -ntl
tcp 0 0 0.0.0.0:4040 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4041 0.0.0.0:* LISTEN
使用mysql-proxy --help-all 可查看mysql-proxy的具體參數
4、讀寫分離測試
由於rw-splitting.lu腳本默認是4個連接,在大於4個mysql連接才能實現讀寫分離,在測試的時候最好修改一下連接
min_idle_connections = 1,
max_idle_connections = 1,
使用3個mysql客戶端連接mysql-proxy服務器的4040端口,比如:
mysql -h192.168.1.13 -utest -ptest -P4040
先在mysql從數據庫使用stop slave停止從服務器同步,然後在主數據庫上插入一條數據,這時在使用mysql-proxy查詢到的數據是從數據庫上的數據,說明mysql-proxy讀寫分離成功。