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,也可以