MySQL想要做读写分离,目前可以有三种解决方式:

1  程序修改mysql操作类
优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配
缺点:自己维护更新,增减服务器在代码处理

2  amoeba
参考官网:http://amoeba.meidusa.com/
优点:直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案
缺点:自己分配账户,和后端数据库权限管理独立,权限处理不够灵活

3  mysql-proxy
优点:直接实现读写分离和负载均衡,不用修改代码,master和slave用一样的帐号
缺点:字符集问题,lua语言编程,还只是alpha版本,时间消耗有点高

如果你不想安装软件来解决读写分离,那就要在程序里控制。
如果你想安装软件来解决读写分离,那amoeba是不错的,mysql-proxy不太建议,目前只有alpha版本,效率还不太理想,amoeba目前在阿里巴巴是内部项目,正在生产环境使用的。

Amoeba For Mysql
Amoeba For Mysql 是 Amoeba项目的子项目。要使用Amoeba For Mysql您必须确保您已符合所有
先决条件:
1. Java SE 1.5 或以上 Amoeba 框架是基于JDK1.5开发的,采用了JDK1.5的特性。
2. 支持Mysql 协议版本10(mysql 4.1以后的版本)。
3. 您的网络环境至少运行有一个mysql 4.1以上的服务
 
安装配置:
1  安装配置java环境
1)根据你的操作系统下载相应的文件,比如jdk-1.6.0,文件下载地址:
2)下载回来的是bin文件,加执行属性,然后执行该程序安装JDK
# chmod a+x jdk-6u24-linux-i586.bin
# ./jdk-6u24-linux-i586.bin
# mv jdk1.6.0_24 /usr/local/jdk
 
3) 配置JAVA_HOME变量
# vim /etc/profile
添加如下内容:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#. /etc/ profile
 
 
2  安装配置Amoeba
# mkdir /usr/local/amoeba
# tar zxvf amoeba-mysql-binary-2.0.1-BETA.tar.gz -C /usr/local/amoeba/
然后修改配置文件符合要求即可。