一,介绍
2,为什么需要读写分离
1.数据库的写 “写入一万条可以需要三分钟,操作是非常消耗时间的。”
2.数据库的读 “读一万条数据可能只要5秒钟。
由此读写分离是解决数据库写入的问题。
二,搭建读写分离
1,实验要求
Mysql -master : 192.168.189.13
Mysql -slave1 :192.168.189.14
Mysql -slave2 :192.168.189.15
客户端 client :192.168.189.16
Mysql -amoeba :192.168.189.17
2.安装jvave 环境
在amoeba 安装JDK1.5版本
将amoeba-mysql-binary-2.2.0.tar.gz和jdk-6u14-linux-x64.bin上传到opt目录下
cp jdk-6u14-linux-x64.bin /usr/local/
chmod +x jdk-6u14-linux-x64.bin
./jdk-6u14-linux-x64.bin enter往下翻页--yes--enter
mv jdk1.6.0_14/ /usr/local/jdk1.6 重命名为了便于环境变量的设置
vim /etc/profile
unset i
unset -f pathmunge
export JAVA_HOME=/usr/local/jdk1.6 ##指定jdk的位置
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 ##amoeba文件的位置
export PATH=$PATH:$AMOEBA_HOME/bin ##调用家目录识别amoeba的bin文件
source /etc/profile
java -version #查看一下有没有安装成功
3、安装amoeba:
mkdir /usr/local/amoeba
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
chmod -R 755 /usr/local/amoeba/ #提权
/usr/local/amoeba/bin/amoeba
amoeba start|stop #安装成功
4.配置amoeba读写分离,俩个slave
在master、slave1、slave2的mysql上开放权限给amoeba
grant all on . to test @‘192.168.189.%’ identified by ‘123456’;
5.修改amoeba主配置文件和数据库文件:
数据库配置文件:/usr/local/amoeba/conf/dbServers.xml
主配置文件:/usr/local/amoeba/conf/amoeba.xml
vim amoeba.xml ##修改主配置文件,即配置第三个账户(客户端找amoeba的用户身份)
30 <property name="user">amoeba</property> ##root改为amoeba;修改账户名(这里是client访问amoeba服务器时使用的账号)
32 <property name="password">123123</property> ##修改账户密码(这里是数据库访问amoeba服务器时使用账号时用的密码)
115 <property name="defaultPool">master</property> ##修改默认池
117 取消注释/,取消下面的注释符号-->,改到这里
118 <property name="writePool">master</property>
119 <property name="readPool">slaves</property>
vim dbServers. xml ##修改数据库配置文件
23 <property name="schema">mysql</property> ##将text修改为mysql;Mysql所有数据库信息( show databases )
26 <property name="user">test</property> ##amoeba访 问三台mysql数据库的账户和密码(账户为test)
29 <property name="password">123456</property> ##取消注释,修改访问数据库的密码
45 <dbServer name="master" parent="abstractServer"> ##修改数据库主服务器名/地址
48 <property name="ipAddress">192.168.35.40</property> ##修改master服务器ip
52 <dbServer name="slave1" parent="abstractServer"> ##修改从服务器名slave1
55 <property name="ipAddress">192.168.35.10</property> ##修改从服务器地址
紧接复制52-57行,粘贴,添加第二台服务器名
59 <dbServer name="slave2" parent="abstractServer"> ##修改从服务器名为slave2
62 <property name="ipAddress">192.168.35.20</property> ##修改第二台服务器IP
66 <dbServer name="slaves" virtual="true">
测试一下有没有安装成功
在客户机数据库登录操作
在主从服务器查看
2.关闭主从同步,测试读写分离是否正常开启
两台从服务登录数据库,关闭主从同步
客户机登入数据库,创建库
再查看一下
在主服务器上查看
由此发现可以写进去,但读取不出来
.
3.在两个从服务器上写入不同的数据,查看读的方式什么
两台从服务器分辨创建不同的表数据
客户机查看