mysql数据分离(mysql-proxy配置)(二)

2014-11-24 14:34:01 · 作者: · 浏览: 1
-proxy --defaults-file=/etc/mysql-proxy.cnf>/opt/module/mysql-proxy/log &
;;
stop)
killall -9 mysql-proxy
;;
*)
echo "Usage: $0 (start|stop)"
exit 1
;;
esac
exit 0;
=====================
# chmod +x /etc/init.d/mysql-proxy
编写mysql-proxy实现读写分离的脚本
# vi /opt/module/mysql-proxy/rw-splitting.lua
============
发送所有的非事务性select到一个从数据库
if is_in_transaction==0 and packet:byte() == proxy.COM_QUERY and packet:sub(2, 7)=="SELECT" then
local max_conns=-1
local max_conns_ndx=0
for i=1, #proxy.servers do
local s=proxy.servers[i] 需要选择一个拥有空闲连接的从
数据库
if s.type==proxy.BACKEND_TYPE_RO and s.idling_connections>0 then
if max_conns==-1 or s.connected_clients0 then
proxy.connection.backend_ndx=max_conns_ndx
end
else
发送到主数据库
end
return proxy.PROXY_SEND_QUERY
============
启动mysql-proxy
# /etc/init.d/mysql-proxy start
注意:copy虚拟机的虚拟硬盘例如219.vdi,重命名为218.vdi,此时用virtualbox来创建一个 虚拟主机,直接连接这个硬盘使用,会提示uuid重复的提示,这是用virtualbox的内部命令可以解决:
C:\Documents and Settings\Administrator>"c:\Program Files\ Oracle\VirtualBox"\VBoxManage internalcommands setvdiuuid E:\HardDisks\217.vdi