主從環境:mysql
操做系統:CentOS6.5_x64linux
主服務器Master:192.168.0.103sql
從服務器Slave:192.168.0.105后端
調度服務器MySQL-Proxy:192.168.0.104服務器
1、mysql主從復制tcp
2、mysql-proxy實現讀寫分離測試
一、安裝mysql-proxylua
實現讀寫分離是有lua腳本實現的,如今mysql-proxy里面已經集成,無需再安裝操作系統
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