一、Mysql-Proxy原理
Mysql-Proxy是一個處於你的client端和Mysql Server端之間的一個簡單程序,它可以監測、分析和改變他們的通信。它使用靈活沒有限制,常見的用途包括:負載平衡,故障、查詢分析,查詢過濾和修改等等。
Mysql -Proxy就是這么一個中間層代理,簡單的說,Mysql-Proxy就是一個連接池,負責將前台應用的請求轉發給后台數據庫,並且通過使用lua腳本,可以實現復雜的連接控制和過濾,從而實現讀寫分離和負載平衡。對於應用來說,MySQL Proxy是完全透明的,應用則只需要連接到MySQL Proxy的監聽端口即可。當然,這樣proxy機器可能成為單點失效,但完全可以使用多個proxy機器做為冗余,在應用服務器的連接池配置中配置到多個proxy的連接參數即可。
原理摘自百度百科。
二、Mysql-Proxy安裝
1、通過yum進行mysql數據庫安裝的時候,首先我們可以輸入 yum list | grep mysql 命令來查看yum上提供的mysql數據庫可下載的版本,查看mysql數據庫數據庫版本的時候,也順便查看可用的mysql-proxy,圖示就是我們想要的結果;
[root
@10
-
17
-
1
-
229
~]# yum list|grep mysql
|
2、我們使用yum install mysql-proxy安裝:
[root
@10
-
17
-
1
-
229
~]# yum install mysql-proxy
|
我們會看到下載的進度條和安裝過程,當出現Complete的時候表示安裝完成。
三、Mysql-Proxy配置
1、用mysql-proxy -V查看mysql-proxy的相關信息,這里留意下版本信息,將會在第三步配置lua路徑的時候用到;
2、使用vim /etc/mysql-proxy.cnf命令打開mysqk-proxy的配置文件進行編輯:
1
|
[root
@10
-
17
-
1
-
229
~]# vim /etc/mysql-proxy.cnf
|
在mysql-proxy.cnf中輸入如下內容:
1
2
3
4
5
6
7
8
9
|
[mysql-proxy]
admin-username=user #admin用戶名
admin-password=password admin密碼
admin-lua-script=/usr/lib64/mysql-proxy/lua/admin.lua #lua位置,參見上面的版本信息
daemon=
true
# mysql-proxy以守護進程方式運行
keepalive=
true
#保持連接啟動進程會有
2
個, 一號進程用來監視二號進程
proxy-backend-addresses=
10.17
.
6.210
#目標地址,Indb內網地址,默認端口
3306
,
10.17
.
6.210
是目標inDB的ip
log-file=/var/log/mysql-proxy.log #日志文件存儲路徑
log-level=debug
|
編輯完之后通過Esc退出編輯,然后用“:wq”保存mysql-proxy.cnf的編輯。
3、用chmod 0660 /etc/mysql-proxy.cnf命令來改變配置文件的權限,然后用 mysql-proxy --defaults-file=/etc/mysql-proxy.cnf啟動mysql-proxy服務:
1
2
|
[root
@10
-
17
-
1
-
229
~]# chmod
0660
/etc/mysql-proxy.cnf
[root
@10
-
17
-
1
-
229
~]# mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
|
4、用mysql -h$uhost_ip -P4040 -u$User -p$Password測試:
1
|
[root
@10
-
17
-
1
-
229
~]# mysql -h106.
75.94
.
37
-P4040 -uroot -p123456
|
$uhost_ip:UHost的外網IP;
$User:用戶名
$Password:數據庫密碼
注意:打開防火牆的4040端口,MySQL-Proxy默認端口為4040,通過訪問4040端口就可以訪問3306端口。