主从复制做好以后,读写分离就不远了
读写分离软件很多,这次用的阿里巴巴开发的amoeba[阿尼爸].PS:用个软件感觉被占了便宜一样
amoeba是java开发的,所以第一步先创建java环境
把jdk安装包移动到/usr/local/下
chmod +x jdk*** 赋予执行权限
安装完成后
mv jdk1**** jdk.自己取名字
修改文件名,这在下面设置脚本,设置环境中需要用到准确位置
vim /etc/profile 修改配置文件/etc/profile 需要添加的 export JAVA_HOME=/usr/local/jdk1.6 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin export AMOEBA_HOME=/usr/local/amoeba/ export PATH=$PATH:$AMOEBA_HOME/bin
----------------------------------------------------------amoeba的java环境
mkdir /usr/local/amoeba
tar zxf amoeba***** -C /usr/local/amoeba 指定压缩到这.绿色软件压缩即可用
chmod -R 755 /usr/local/amoeba/ 赋予755权限
/usr/local/amoeba/bin/amoeba 如果出了start stop 就是成功
为了让amoeba可以连接mysql服务器,每台服务器都需要创建一个帐号,给予权限
grant all on *.* to 'tangsan'@'192.168.1.%' identified by '123456' 赋予权限在mysql中的命令
现在开始修改amoeba的配置文件
vim /usr/local/amoeba/conf/amoeba.xml
开头有一个 8066端口,这事amoeba连接用的
将其改成3306 这是mysql的端口,为了后期连接方便直接修改了就行否则在连接时需要-P8066指定端口
后面还有两个用户名跟密码,注意这个用户名密码是amoeba的!是用来连接amoeba的!
还有一个地方是区分读写服务器的,名称要写对,需要跟另外一个配置文件匹配
defaultpool 默认 master 主要的么 slave 奴隶,......很形象啊
writepool 写
readpool 读
---------------------------------------------------------------------------------------amoeba.xml配置完成
vim /usr/local/amoeba/conf/dbServers.xml
首先修改用于连接mysql的账户密码
<property name="user">tangsan</property> <property name="password">123456</property>
这两行需要修改,其中密码是被注释的,自行删或者添加
然后开始设置读写区分服务
注意箭头方向,那是跟上一个文档配合的,还有当前mysql的IP,截图不是很好,slaves是同一个,但是下面的slave1 是读服务器池,自行定义有多少写多少!
/usr/local/amoeba/bin/amoeba start& 启动服务后台启动
netstat -anpt | grep java 查看服务
如果服务可以查看到,基本就成功了,在另外一台linux mysql上连接amoeba
mysql -u amoeba -p 123456 -H 192.168.1.20
用户名密码,指定IP
连接成功,yes
|