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