作者:居思涵
来源:http://blog.51cto.com/13871362/2331275
一、实验坏境
1.一台CentOS 7作为客户端测试,对应的地址为:192.168.80.120
2.一台CentOS 7作为Amoeba前端代理服务器,对应的地址为:192.168.80.110
3.一台CentOS 7作为mysql主服务器,对应的地址为:192.168.80.100
4.两台CentOS 7分别作为mysql从服务器,对应的地址分别为:192.168.80.140,192.168.80.150
5.所有的虚拟机都绑定同一块虚拟网卡vnet1:192.168.80.10
二、主从复制和读写分离的原理
1、主从复制的原理
MySQL支持的复制类型有:基于语句的复制、基于行的复制、混合类型的复制。
复制的工作过程如下:
2、读写分离的原理
基于中间代理层实现:代理一般位于客户端和服务器之间,代理服务器接到客户段的请求通过判断后转发到后端数据库。
读写分离的过程如下:
三、搭建MySQL主从复制
将三台CentOS 7分别用源码编译安装MySQL数据库具体操作:http://blog.51cto.com/13871362/2328667
1、配置主服务器
1)建立时间同步环境
17行添加
2)配置主MySQL
3)进入数据库授权
2、配置从服务器(两台从步骤一样,区别server-id不同)
1)配置从MySQL
2)在从服务器上进行时间同步
3)进入从数据库授权
3、验证主从复制
进入主服务器数据库
在两台从服务器上验证
四、搭建MySQL读写分离
1、配置前端代理服务器
1) 安装JDK环境(amoeba基于jdk开发的)
添加Java环境
2)安装Amoeba
3)制作amoeba启动脚本
4)与客户端对接
83行
5)与后端服务器对接
43-56行
65-73行
6)在三台mysql数据库中(一主两从)为amoeba授权
2、配置客户端
3、测试读写分离
1) 在MASTER上新建的数据库或者里面的表,两台从服务器会同步
2)在两台从服务器上停止从服务后
在主主服务器插入内容
在从服务器1上出入内容
在从服务器2上出入内容
3)在客户端上面测试从服务器只读数据
4)在客户端上面测试主服务器只写数据
在客户端查看
在主服务器查看
在从服务1上查看
在从服务器2上查看
4、结论
以上实验在主从同步的基础上验证了MySQLd的读写分离,而Amoeba充当代理服务器,负责将客户的请求进行转发,分配到相应的服务器,也验证的原理。
领取专属 10元无门槛券
私享最新 技术干货