主從環境:mysql
操做系統:CentOS6.5_x64linux
主服務器Master:192.168.0.103sql
從服務器Slave:192.168.0.105後端
調度服務器MySQL-Proxy:192.168.0.104服務器
1、mysql主從複製tcp
這裏就省略了,請參考 http://blog.jobbole.com/94595/ide
2、mysql-proxy實現讀寫分離測試
一、安裝mysql-proxylua
實現讀寫分離是有lua腳本實現的,如今mysql-proxy裏面已經集成,無需再安裝操作系統
下載:http://dev.mysql.com/downloads/mysql-proxy/
wget --no-check-certificate https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
tar zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-el6-x86-64bit /software/mysql/mysql-proxy
二、配置mysql-proxy,建立主配置文件
[mysql-proxy]
#運行mysql-proxy系統用戶
user=root
#主從mysql共有的用戶
admin-username=proxy
#用戶的密碼
admin-password=123456
#mysql-proxy運行ip和端口,不加端口,默認4040
proxy-address=192.168.0.104:4040
#指定後端從slave讀取數據
proxy-read-only-backend-addresses=192.168.0.105
#指定後端主master寫入數據
proxy-backend-addresses=192.168.0.103
#指定讀寫分離配置文件位置
proxy-lua-script=/software/mysql/mysql-proxy/lua/rw-splitting.lua
#指定管理腳本
admin-lua-script=/software/mysql/mysql-proxy/lua/admin-sql.lua
#日誌位置
log-file=/software/mysql/mysql-proxy/logs/mysql-proxy.log
#定義log日誌級別,由高到低分別有(error|warning|info|message|debug)
log-level=info
#以守護進程方式運行
daemon=true
#mysql-proxy崩潰時,嘗試重啓
keepalive=true
3.修改讀寫分離配置文件
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
4.開啓服務器mysql-proxy 端口
修改iptables
vi /etc/sysconfig/iptables
添加紅色部分
5.建立受權主從MySQL服務用戶給proxy,這個用戶和密碼要主從一致
登陸進入主和從
grant all on *.* to 'proxy'@'192.168.0.104' identified by '123.com';
6.啓動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.204:4000 0.0.0.0:* LISTEN 1264/mysql-proxy
關閉mysql-proxy使用:killall -9 mysql-proxy
7.測試proxy是否啓動成功
mysql -u proxy -h 192.168.0.104 -P 4000 -p123.com