搭建基于MySQL的读写分离工具Amoeba:
Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的;
实验环境(虚拟机):
主机 角色
10.10.10.20 多实例加主从复制
10.10.10.30 Amoeba服务器
10.10.10.40 客户端(最后测试使用)
1、首先搭建MySQL的主从复制(不在多提);
需要注意的是:在主从库上需要创建一个用户,在主库上创建的用户为amoeba,权限是create,update,insert,delete;
在从库上创建的用户也是amoeba,权限是select;
2、由于Amoeba是基于java的环境去实现的,所以要先安装jdk插件:(先通过windows主机去下载)
http://pan.baidu.com/share/link?shareid=2793927523&uk=1678158691&fid=117337971851932
下载完成后通过xshell自带的ftp软件传到服务器上,然后进行安装:
[root@localhost tools]# tar xf jdk-7u79-linux-x64.tar.gz
[root@localhost tools]# vim /etc/profile ##编辑jdk需要的环境变量;
export JAVA_HOME=/root/tools/jdk1.7.0_79
export JRE_HOME=/root/tools/jdk1.7.0_79/jre
export PATH=/root/tools/jdk1.7.0_79/bin:$PATH
export CLASSAPTH=./:/root/tools/jdk1.7.0_79/lib:/root/tools/jdk1.7.0_79/lib
[root@localhost tools]# java -version ##检测jdk是否安装成功,出现如下信息算安装成功;
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
3、下载并安装Amoeba软件:
[root@localhost tools]# mkdir /usr/local/amoeba ##创建一个目录用来放amoeba的软件;
https://sourceforge.net/projects/amoeba/ ##windows主机登录网址到网页中部的地方下载 Released /OldFiles/amoeba-mysql-0.19.zip,通过xshell自带FTP工具放到服务器上;
[root@localhost amoeba]# cd /usr/local/amoeba/
[root@localhost amoeba]# unzip amoeba-mysql-0.19.zip
[root@localhost amoeba]# ls
LICENSE.txt README.html amoeba-mysql-0.19.zip bin build.xml conf doc lib logs src ##主要用到的目录是conf这个配置目录;
[root@localhost conf]# ls
access_list.conf amoeba.dtd amoeba.xml function.dtd functionMap.xml log4j.dtd log4j.xml rule.dtd rule.xml ruleFunctionMap.xml
[root@localhost conf]# vim amoeba.xml
3306 ##配置的是Amoeba的服务端口,这里用3306就可以,默认的是8806;
10.10.10.30 ##配置的是Amoeba服务器的IP地址,默认的是127.0.0.1,改为物理网卡上的IP地址;
100 ##下面的四个数字可以调大一点;
100
200
128
true
root ##配置客户端通过Amoeba连接数据库的用户,默认的是root;
xyp123123 ##配置的是客户端通过Amoeba连接数据库的密码,默认是被注释掉的;
##定义mysql池的名字;
com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory
defaultManager
3306 ##主库的端口号;
10.10.10.20 ##主库的IP地址;
xyp##需要进行操作的库;
amoeba ##用于Amoeba连接数据库的用户;
com.meidusa.amoeba.net.poolable.PoolableObjectPool ##这里的不用动;
200
200
10
600000
600000
true
true
##定义从库的池;
com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory
defaultManager
3307 ##从库端口;
10.10.10.20 ##从库ip地址;
xyp ##从库上需要进行操作的库;
amoeba ##amoeba连接从库的用户;
com.meidusa.amoeba.net.poolable.PoolableObjectPool ##下面的不用动;
200
200
10
600000
600000
true
true
##定义操作的池,master为主库
com.meidusa.amoeba.server.MultipleServerPool
1
1