1.我的环境
Amoeba 2.0.1 -- CentOS release 6.8 (Final) -- 10.20.49.254
Mysql 5.1.73 -- CentOS release 6.4 (Final) -- 10.20.48.254
JDK 1.7.0_51
2.软件安装
10.20.49.254
wget https://jaist.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.0.1-BETA.tar.gz
mkdir /usr/local/amoeba-2.0.1
tar xf amoeba-mysql-binary-2.0.1-BETA.tar.gz -C /usr/local/amoeba-2.0.1/
10.20.48.254
yum install mysql-server -y
3.Amoeba配置
vim /usr/local/amoeba-2.0.1/bin/amoeba
JAVA_HOME=/usr/local/jdk1.7.0_51
vim /usr/local/amoeba-2.0.1/conf/dbServers.xml
#########
# 第1部分
#########
# 可以定义多个抽象服务器,每个抽象服务器都代表一组服务器连接信息
# 换句话说,就是可以代理多个服务器集群
<dbServer name="abstractServer" abstractive="true">
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">${defaultManager}</property>
<property name="sendBufferSize">64</property>
<property name="receiveBufferSize">128</property>
# 关于服务器连接的信息,Amoeba-->Mysql
<property name="port">3306</property>
<property name="schema">amoeba</property>
<property name="user">root</property>
<property name="password">root</property>
</factoryConfig>
<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
<property name="maxActive">500</property>
<property name="maxIdle">500</property>
<property name="minIdle">10</property>
<property name="minEvictableIdleTimeMillis">600000</property>
<property name="timeBetweenEvictionRunsMillis">600000</property>
<property name="testOnBorrow">true</property>
<property name="testWhileIdle">true</property>
</poolConfig>
</dbServer>
##########
# 第二部分
##########
<dbServer name="server1" parent="abstractServer">
<factoryConfig>
<property name="ipAddress">10.20.48.254</property>
</factoryConfig>
</dbServer>
<dbServer name="server2" parent="abstractServer">
<factoryConfig>
<property name="ipAddress">10.20.49.250</property>
</factoryConfig>
</dbServer>
##########
# 第三部分
##########
<dbServer name="multiPool" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
# 负载均衡算法,如果这个服务器池中有多个服务器的话,该配置才生效
<property name="loadbalance">1</property>
# 当前池中的服务器列表,如果只写一个,就表示Amoeba只作为代理出现
# 如果写两个或多个,就表示Amoeba充当的是负载均衡器
<property name="poolNames">server1</property>
</poolConfig>
</dbServer>
vim /usr/local/amoeba-2.0.1/conf/amoeba.xml
# 应用程序连接amoeba时需要用到一些信息,这些信息配置在amoeba.xml文件中
# 这是Amoeba作为代理角色的配置信息
<proxy>
<service name="Amoeba for Mysql" class="com.meidusa.amoeba.net.ServerableConnectionManager">
# 应用程序使用这个端口和IP地址来连接Amoeba
<property name="port">8066</property>
<property name="ipAddress">10.20.49.254</property>
<property name="authenticator">
<bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
# 应用程序使用这个用户名和密码来连接Amoeba
<property name="user">root</property>
<property name="password">amoeba</property>
</bean>
</property>
</service>
</proxy>
4.启动Mysql和Amoeba
/etc/init.d/mysql start
/usr/local/amoeba-2.0.1/bin/amoeba start
5.在数据库中创建schema(这个需要提前创建好)
mysqladmin -uroot password 'root'
mysql -uroot -proot -e "grant all on *.* to 'root'@'%' identified by 'root';flush privileges";
6.测试连接
假如我们使用命令行来连接
mysql -h 10.20.49.254 -P 8806 -uroot -proot
使用GUI来连接,比如navicate,也可以