首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

部署MySQL主从复制与读写分离

作者:居思涵

来源: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充当代理服务器,负责将客户的请求进行转发,分配到相应的服务器,也验证的原理。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181222A0N0DC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券