MySQL讀寫分離

前言

mysql-proxy是一個官方提供的框架,經過讀寫分離來提高數據庫的併發負載能力

clipboard.png

前提: 已配置好主從 如何配置主從?

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
相關文章
相關標籤/搜索