用proxy實現,proxy可用來監視、分析或者傳輸他們之間的通訊。他的靈活性允許你最大限度的使用它,這些包括負載平衡、容錯 、分析查詢和修正,他就像一個接線員、一箇中間層代理、一個連接池,把不同的請求派到相應的目的位置上
安裝
如果沒有要求可以直接用已經編譯好的二進制文件解壓拷貝到/usr/local/目錄就可以用了,也可以見下面的編譯安裝
[root@zzh /]# cp -r /kt/mysql-proxy-0.7.2-linux-rhel5-x86-32bit/* /usr/local/
源碼編譯安裝
安裝LUA
INSTALL_TOP= /usr/local/lua
make posix
make install
安裝libevent
[root@zzh libevent-1.4.12-stable]# ./configure --prefix=/usr/local/libevent
make
make install
安裝check
[root@zzh check-0.9.8]# ./configure
make
make install
安裝mysql-proxytar
[root@zzh mysql-proxy-0.7.2]# ./configure --prefix=/usr/local/mysql-proxy --with-mysql=/usr/local/mysql --with-lua
make
make install |
mysql-proxy啓動選項的說明:
--help-all |
顯示所有的幫助選項 |
--daemon |
採用daemon方式啓動 |
--admin-address=host:4041 |
管理主機及端口,不指定host表示管理主機是本機 |
--proxy-address=host:4040 |
代理服務器的監聽地址及端口 |
--proxy-read-only-backend-addresses=host:port |
只讀連接時代理服務器的監聽地址及端口 |
--proxy-backend-addresses=host:3306 |
重要:連接真實服務器的地址及監聽端口,可監聽多個服務器 |
--proxy-lua-script=*.lua |
指定lua腳本,默認不設置 |
測試
在192.168.0.10MySQL服務器上建立遠程連接用戶
mysql> grant all privileges on *.* to 'kt'@'%'identified by '123456' with grant option;
在proxy服務器上開啓監聽對192.168.0.10服務器的代理
[root@zzh /]# mysql-proxy --proxy-backend-addresses=192.168.0.10:3306 &
[root@zzh /]# netstat -anp | grep proxy |
查看服務器是否開啓 |
[root@zzh /]# killall mysql-proxy |
關閉服務 |
[root@zzh /]# mysql --host=192.168.0.99 -u kt --port=4040 -p |
測試連接 |
兩個mysql服務器設置
[root@zzh /]# mysql-proxy --proxy-backend-addresses=192.168.0.10:3306 --proxy-backend-addresses=192.168.0.20:3306 &
主從複製上讀寫分離
一個主服務器,負責寫入;2個從服務器負責查詢
[root@zzh /]# mysql-proxy
--proxy-backend-addresses=192.168.0.99 :3306
--proxy-read-only-backend-addresses=192.168.0.10:3306
--proxy-read-only-backend-addresses=192.168.0.20:3306 |