vim dbServers.xml <!-- mysql port --> #設置amoeba連接后端mysql的端口 <property name="port">3306</property>
<!-- mysql schema --> #設置缺省的數據庫,當連接amoeba時,操作表必須顯式的指定數據庫名,即采用dbname.tablename的方式,不支持 use dbname指定缺省庫,因為操作會調度到各個后端dbserver <property name="schema">test</property>
<!-- mysql user --> #設置amoeba連接后端mysql的用戶名和密碼 <property name="user">amoeba</property>
<property name="password">123456</property>
<dbServer name="master" parent="abstractServer">#設置一個后端的dbServer,這里設置連接可寫的master庫,此名字可自定義,但要和amoeba.xml中調用的名字一致即可。 <factoryConfig> <!-- mysql ip --> #后端mysql的ip地址 <property name="ipAddress">10.0.0.176</property> </factoryConfig> </dbServer>
<dbServer name="slave" parent="abstractServer"> #設置一個后端的dbServer,這里設置連接可讀的salve,此名字可自定義,但要和amoeba.xml中調用的名字一致即可。 <factoryConfig> <!-- mysql ip --> #后端mysql的ip地址 <property name="ipAddress">10.0.0.193</property> </factoryConfig> </dbServer>
<!-- Separated by commas,such as: server1,server2,server1 --> <property name="poolNames">slave</property> #組成員,當有多個時用逗號分隔 </poolConfig> </dbServer> 三 mysql授權amoeba用戶登錄(此處我的兩臺mysql服務器master和slave已經做好了主從同步,并且已經驗證成功,需要做主從同步請看https://blog.51cto.com/zengzeyang/1911173) master上授權: mysql> grant select,insert,update,delete on . to 'amoeba'@'10.0.0.%' identified by '123456'; mysql> flush privileges; slave上授權: mysql> grant select on . to 'amoeba'@'10.0.0.%' identified by '123456'; mysql> flush privileges; 注意:此處授權的用戶密碼要和dbServers.xml中配置的一致。如果你的mysql開啟所有庫主從同步則你在主上授權的用戶會同步到從庫,解決方法是:1在從庫上降權;2主從同步時不讓mysql庫同步
四 啟動amoeba: #cd /usr/local/amoeba/bin
vim launcher 添加JAVA_HOME: JAVA_HOME=/usr/java/jdk1.7.0_80
# cd /usr/local/amoeba/ # vim jvm.properties 修改VM_OPTIONS: JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
# /usr/local/amoeba/bin/launcher 2018-01-02 23:34:21 [INFO] Project Name=Amoeba-MySQL, PID=48981 , starting... log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml 2018-01-02 23:34:22,152 INFO context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45- mysql-amoeba-proxy-3.0.4-BETA log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf 2018-01-02 23:34:22,520 INFO net.ServerableConnectionManager - Server listening on /10.0.0.159:3306. #啟動成功
# ss -tanlp LISTE 128 ::ffff:10.0.0.159:3306 :::* 五 測試:用另外的mysql客戶端連接amoeba,測試時我暫停了主從同步,以便更直接的看出效果