須要先配置主從同步:五個步驟完成MySQL主從複製mysql
主服務器Master:192.168.179.146 從服務器Slave:192.168.179.147 調度服務器MySQL-Proxy:192.168.179.142
實現讀寫分離是有lua腳本實現的,如今mysql-proxy裏面已經集成,無需再安裝linux
下載:https://downloads.mysql.com/archives/proxy/ 下載對應的版本sql
我這裏以CentOS6 64位服務器爲例
vim
我這邊爲了方便使用 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腳本和日誌文件存放的目錄,並把自帶的管理腳本考本過來。服務器
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] 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
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
/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