博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL的主从复制与读写分离
阅读量:6857 次
发布时间:2019-06-26

本文共 1580 字,大约阅读时间需要 5 分钟。

在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是安全性,高可用性,还是高并发性等各个方面都是不能满足实际需求,因此,一般来说都是通过主从复制的方式来同步诗句,再通过读写分离来提升数据库的并发负载能力这样的方案来实施和部署。

MYSQL主从复制的原理
MYSQL的主从复制和MYSQL的读写分离两者有着紧密的联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。
MYSQL读写分离原理
读写分离就是只在主服务器上写,只能在从服务器上读。基本原理就是让主数据库处理事务性查询,从而数据库处理select查询。数据库复制被用来把事务性查询导致的变更同步到群集分钟的从数据库。
基于中间代理层实现:代理一般位于客户端和服务器之间,代理服务器建立到客户端请求通过判断后转发到后端数据库。这里我们用的是Amoeba。

实验所需用到的包和整理的脚本链接: 密码: qm2g

主服务器IP:192.168.175.128

从服务器IP1:192.168.175.141
从服务器IP2:192.168.175.142
代理服务器地址:192.168.175.133
实验如下:
实验开始前首先把所有服务器的防火墙关掉
首先我们需要时主从服务器的时间进行同步
MYSQL的主从复制与读写分离
MYSQL的主从复制与读写分离
在主服务器上的etc下ntp.conf这个文件的最后进行插入插入服务器的地址段,但这里使用127来指明不要用真实地址段。退出文件后开启ntp服务
MYSQL的主从复制与读写分离
在两台从服务器上指定主服务器的地址进行同步。
下面要进行的操作的是主从复制
MYSQL的主从复制与读写分离
MYSQL的主从复制与读写分离
首先回到主服务器上在etc下面的my.cnf文件下进行修改,如文件里没有的自行添加
下面对住服务器的数据库进行操作
MYSQL的主从复制与读写分离
首先创建个用户给权限,在刷新使数据库立即生效,在显示主从同步状态

下面回到从服务器上操作

MYSQL的主从复制与读写分离
在两台从服务器上etc下面的my.cnf文件下进行修改,如文件里没有的自行添加
MYSQL的主从复制与读写分离
进入数据库指定主服务器地址和二进制日志和节点,在这里要注意的是主服务器的节点经常会改变,所有在进行操作前要确认主服务器的节点和二进制日志。开启主从同步,显示主从同步状态,这里需要看到两个yes。
为了验证主从同步是否成功可以在主服务器上创建一个数据库来验证

下面要进行的代理服务器上的操作

MYSQL的主从复制与读写分离
MYSQL的主从复制与读写分离
安装java环境
MYSQL的主从复制与读写分离
在etc下面的profile文件最下面这段话,在使用source刷新这个文件,这个文件会改变系统的环境变量

MYSQL的主从复制与读写分离

在这里我们需要开放权限给amoeba,所以回到主服务器和从服务器上开放权限

MYSQL的主从复制与读写分离

创建一个amoeba文件来放一会我们解压的文件
MYSQL的主从复制与读写分离
修改amoeba两个配置文件
MYSQL的主从复制与读写分离
首先设置一个用户来使客户端能访问服务器MYSQL的主从复制与读写分离
指定写是主读是从

MYSQL的主从复制与读写分离

编辑下个文件
MYSQL的主从复制与读写分离
设置一个代理访问服务器的用户
MYSQL的主从复制与读写分离
指定主服务器的地址
MYSQL的主从复制与读写分离
指定两台从服务器地址
MYSQL的主从复制与读写分离
因为之前修改了从服务器的名字文slave所以下面要更改过来

MYSQL的主从复制与读写分离

使用/usr/local/amoeba/bin/amoeba start&来开启amoeba代理服务
可以使用netstat -ntap | grep java来查看监听地址和端口

这里所有的服务就算完成了,在客户端的数据库可以使用mysql -u amoeba -p123456 -h 192.168.175.133 -P 8066

这里指定登录用户问amoeba 密码为123456 地址为代理服务器地址 -P指定端口
为了验证读写是否分离,可以现在三代服务器上创建一个表,在每个表里各写一段不同的数据,之后再两台从服务器上使用 stop slave; 来关闭主从
之后再客户端查看表里的内容若只能显示从服务器的信息。在客户端插入一条信息只有主服务器才能开到。这样实验就算完成了就算完成了。

转载于:https://blog.51cto.com/13840048/2172790

你可能感兴趣的文章
为什么我们做分布式使用Redis?
查看>>
【4opencv】求解向量和轮廓的交点
查看>>
一次邮件发送协议SMTP问题排查
查看>>
BugkuCTF 文件上传测试
查看>>
7- OpenCV+TensorFlow 入门人工智能图像处理-彩色反转&边缘检测
查看>>
不同地域的内容偏好性分析
查看>>
JPA @Column 字段命名 默认驼峰转换
查看>>
作者谈《阿里巴巴Java开发手册(规约)》背后的故事
查看>>
缓冲区溢出攻击相关知识
查看>>
Purism 发布 PureBoot:高度安全、完整的 Linux 引导流程
查看>>
poj2891:Strange Way to Express Integers
查看>>
阿里云发布智能语音自学习平台,零基础训练人工智能模型
查看>>
想成为软件架构师,一定要看的经典书单
查看>>
真正理解拉格朗日乘子法和 KKT 条件
查看>>
梓论坛 zibbs 1.0 发布,PHP 轻论坛系统
查看>>
阿里云专访Redisson作者Rui Gu:构建开源企业级Redis客户端之路
查看>>
读书笔记 effective c++ Item 55 让你自己熟悉Boost
查看>>
【小工匠聊Modbus】08-功能代码01H
查看>>
高可靠性、超大规模、极致性能、灵活部署的阿里云Apsara Block Storage,你pick嘛?...
查看>>
Mealy和moore型状态机的主要区别
查看>>