Amoeba-mysql主从+读写分离实战+测试+排错

Amoeba-mysql读写分离实战

         Amoeba用途有很多,这里看标题我们就先说读写分离,因为我也只会这个。Amoeba定义为国内的,开源的。目前(2015年10月20日)我们用amoeba2.2版本来做。

先说一下本人环境:wKioL1Ym5zbyIxExAADay0VnuMg256.jpg



Mysql 5.6

Centos 6.4

Mysql一主两从已OK。

Amoeba 2.2.x

Amoeba下载地址:http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/

 

由于Amoeba需要用到jave se 所以我们需要安装jdk环境。

最新的1.8 可用。

安装jdk:

rpm -ivh jdk-8u60-linux-x64.rpm

wKiom1Ym50jR_QM_AAEV4426fbg217.jpg


source /etc/profile

验证jdk:

 wKiom1Ym52qSsKYOAAEhME4H_Cc727.jpg

Jdk就完事了,现在开始amoeba的安装。

 

先创建目录文件

mkdir /usr/local/amoeba

tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba

解压指定目录

wKioL1Ym57rCmWhXAAFbVfwqpww932.jpg


然后我们进入conf文件,这里的xml为储存amoeba设置连接mysql的数据

在amoeba目录下,输入

./bin/amoeba

wKiom1Ym56mhWXu9AABAvOaodL4427.jpg

如果出现说明amoeba安装OK,

 

接下来设置amoeba的参数,设置参数的文件在conf目录下的amoeba.xml和dbServers.xml两个文件。

先看 dbServiers.xml

wKioL1Ym5-uyJ-yDAARt_eq2r5A452.jpg


grant all on *.* to root@'192.168.0.191' identified by "123456";这条命令是需要在客户端运行的,让amoeba调度器能够连接我们的数据库并做操作

wKiom1Ym5-HyttdUAAPoUDHtH64447.jpg


这个dbServers.xml就设置到这里

 

 

接下来看amoeba.xml


 wKiom1Ym5_2SAOlWAAMQ1eTXXC4730.jpgwKioL1Ym6D_h4ZprAAN8fzp7MGk709.jpg

 


配置完成后保存。

然后启用amoeba

/usr/local/amoeba/bin/amoeba &       &表示在后台运行

如果出现

wKiom1Y5tEDQktl4AAFO8PV24ao190.jpg打开bin/amoeba

DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"
改成

    DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"




用ps �Cef |grep amoeba 看一下是否启动

查看netstat -tunlp | grep 8066 看一下端口是否开启

##amoeba这台机器是不用开启mysql服务

 

 

 

     在其他客户端上验证是否可以登录amoeba上;

wKioL1Ym6F7hkcY1AABGN6mSdvA342.jpg



这样就表示登录成功。

 wKiom1Ym6E-A4lJoAAEF1P-PbwU124.jpg



到此读写分离就已经搭建完成了,如果要结合到前段web的应用上就把web端的数据库连接改到amoeba这台服务器的8066端口上,用户名密码就是amoeba.xml里配置的用户名和密(并非real-mysql-server)的用户。


如果想实现分库分用户比如mysql里yyy用户管理yyy库,zzz用户管理zzz库。可以新解压个amoeba程序修改端口,修改库,修改用户,另起进程进行读写分离。



此处我前端web是discuz论坛,就要修改/usr/local/nginx/html/config/config_global.php

wKioL1Y5v6SCVrOXAAKfBq_TL2g715.jpg



你可能感兴趣的:(Amoeba-mysql主从+读写分离实战+测试+排错)