mysql中常用的读写分离有amoeba和mysql-proxy。
amoeba主要在应用层访问MySQL的 时候充当SQL路由功能,具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据。amoeba使用平台为java,实例采用稳定版(2.2可支持java1.6,java1.7版本),下载地址为:https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz
主服务器:192.168.2.7
从服务器:192.168.2.8
amoeba读写分离服务器:192.168.26
下载后解压到使用目录中/usr/local/amoeba
1、在后台realserver创建具有访问权限的mysql用户及密码。
mysql> GRANT ALL ON *.* TO 'amoeba'@'%' IDENTIFIED BY 'amoeba';
2、配置文件con/amoeba.xml
3、配置dbServers.xml
4、配置完成后启动amoeba,在lib下amoeba。
使用amoeba.xml中配置的客户端访问账户amoeba,密码amoeba登录mysql,使用抓包工具查看是否amoeba实现了读写分离。
测试:
主服务器运行tcpdump -i eth0 -nn -A -s0 tcp dst port 3306 and dst host 192.168.2.7
从服务器运行tcpdump -i eth0 -nn -A -s0 tcp dst port 3306 and dst host 192.168.2.8
监听主从服务器端口,查看sql语句流向。