mysql-proxy 實現讀寫分離

mysql-proxy 實現讀寫分離

須要先配置主從同步:五個步驟完成MySQL主從複製mysql

主服務器Master:192.168.179.146
從服務器Slave:192.168.179.147
調度服務器MySQL-Proxy:192.168.179.142

下載mysql-proxy

實現讀寫分離是有lua腳本實現的,如今mysql-proxy裏面已經集成,無需再安裝linux

下載:https://downloads.mysql.com/archives/proxy/ 下載對應的版本sql

我這裏以CentOS6 64位服務器爲例
mysql-proxy 實現讀寫分離vim

安裝mysql-proxy

我這邊爲了方便使用 wget 命令下載,而後拷貝到/usr/local/下並修改目錄名爲mysql-proxy。後端

wget https://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz 
tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit /usr/local/mysql-proxy

配置mysql-proxy

建立mysql-proxy腳本和日誌文件存放的目錄,並把自帶的管理腳本考本過來。服務器

cd /usr/local/mysql-proxy
mkdir lua  #建立腳本存放目錄
mkdir logs #建立日誌目錄

cp share/doc/mysql-proxy/rw-splitting.lua ./lua  #複製讀寫分離配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua     #複製管理腳本

建立mysql-proxy配置文件

vim /etc/mysql-proxy.cnf #建立配置文件

[mysql-proxy]
user=root            #運行mysql-proxy用戶
admin-username=lin3615    #主從mysql共有的用戶
admin-password=123456     #用戶的密碼
proxy-address=192.168.179.142:4040     #mysql-proxy運行ip和端口(默認端口4040)
proxy-read-only-backend-addresses=192.168.179.147     #指定後端從slave讀取數據(默認端口3306)
proxy-backend-addresses=192.168.179.146                      #指定後端主master寫入數據(默認端口3306)
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定讀寫分離配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua  #指定管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log           #日誌位置
log-level=info      #定義log日誌級別,由高到低分別有(error|warning|info|message|debug)
daemon=true      #以守護進程方式運行
keepalive=true   #mysql-proxy崩潰時,嘗試重啓

:wq #保存退出!
chmod 660 /etc/mysql-proxy.cnfide

修改讀寫分離配置文件

vim /usr/local/mysql-proxy/lua/rw-splitting.lua

if not proxy.global.config.rwsplit then
    proxy.global.config.rwsplit = {
        min_idle_connections = 1, #默認超過4個鏈接數時,纔開始讀寫分離,改成1
        max_idle_connections = 1, #默認8,改成1
        is_debug = false
 }
end

啓動mysql-proxy

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf  #指定咱們建立的/etc/mysql-proxy.cnf配置文件啓動
netstat -tupln | grep 4040   #已經啓動

killall -9 mysql-proxy           #關閉mysql-proxy使用

測試讀寫分離

在主服務器建立proxy用戶用於mysql-proxy使用,從服務器也會同步這個操做
mysql> grant all on *.* to 'lin3615'@'192.168.179.142' identified by '123456';

使用客戶端鏈接mysql-proxy
mysql -u lin3615 -h 192.168.179.142 -P 4040 -p123456
相關文章
相關標籤/搜索