前言
mysql-proxy是一個官方提供的框架,經過讀寫分離來提高數據庫的併發負載能力
192.168.0.1:3306 # 主
192.168.0.2:3306 # 從
192.168.0.3:4000 # proxy
1 安裝mysql-proxy
wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
2 配置mysql-proxy,建立主配置文件
[mysql-proxy]
user=root #運行mysql-proxy用戶
admin-username=proxy #主從mysql共有的用戶
admin-password= #用戶的密碼
proxy-address=192.168.0.3:4000 #mysql-proxy運行ip和端口,不加端口,默認4040
proxy-read-only-backend-addresses=192.168.0.2 #指定後端從slave讀取數據
proxy-backend-addresses=192.168.0.1 #指定後端主master寫入數據
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崩潰時,嘗試重啓
chmod 660 /etc/mysql-porxy.cnf
三、修改讀寫分離配置文件
vi /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
netstat -tupln | grep 4000 #已經啓動
tcp 0 0 192.168.0.3:4000 0.0.0.0:* LISTEN 6666/mysql-proxy
關閉mysql-proxy使用:killall -9 mysql-proxy
五、測試讀寫分離
主服務器建立proxy用戶用於mysql-proxy,從服務器會同步
grant all on *.* to 'proxy'@'192.168.0.3' identified by 'xxx';
使用客戶端鏈接mysql-proxy
mysql -u proxy -h 192.168.0.3 -P 4000 -p
詳細測試能夠本身作一些
參考文章
http://www.cnblogs.com/luckcs/articles/2543607.html