环境:
写
apache ------------->Mysql A
| |------------->Mysql B1
| |
|----->分发器——|
读 |------------->Mysql B2
IP
apache : 192.168.74.3
分发器 : 192.168.74.2
MysqlA : 192.168.74.4
MysqlB1 : 192.168.74.5
MysqlB2 : 192.168.74.6
绑定VIP: 192.168.74.250
Mysql主从配置与命令参照http://shenmeh.blog.51cto.com/6231527/1075971 (ABB)
注意Mysql所有服务器要给apache权限
-------------------------------------------------------------------------------
分发器配置
ifconfig eth0 192.168.74.2
绑定vip
#ifconfig eth0:0 192.168.74.250 netmask 255.255.255.255 broadcast 192.168.74.250 up
设定路由
route add -host 192.168.74.250 dev eth0:0
设定分发规则
ipvsadm -A -t 192.168.74.250:3306 -s rr
ipvsadm -a -t 192.168.74.250:3306 -r 192.168.74.5 -g
ipvsadm -a -t 192.168.74.250:3306 -r 192.168.74.6 -g
--------------------------------------------------------------------------------
Mysql server的配置(A\B1\B2)
绑定vip
#ifconfig lo:0 192.168.74.250 netmask 255.255.255.255 broadcast 192.168.74.250 up
设置到主机的路由
#route add -host 192.168.74.250 dev lo:0
保证arp协议在连接过程中,路由器上,只知道网络中192.168.19.250对应的是分发器
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
----------------------------------------------------------------------------------
Apache
读写分离用mysql-w-r进行简单配置
mysql-c.php&insert.php
mysql-r.php
-------------------------------------------------------------------------------------
测试结果