OneProxy实现mysql读写分离
OneProxy for MySQL可以复用不同应用到后端数据库的连接,有效降低数据库的并发连接数;可以即时踢除不可用的节点,将应用请求转发到其他可用节点,保证业务服务的稳定性。 可透明地将查询语句分发到多个MySQL备库执行,用读写分离方案支持上千万的并发访问;也可以根据SQL语句中的值进行分库分表路由, 均匀分散到多个MySQL主库上,以支持每秒上百万个小事务的并发执行;可实时透明地分析流量数据,统计SQL和事务的运行时间,分析事务的结构,得到各种不同维度的实时性能报告; 还可以进行流理QoS控制,作为数据库防火墙抵挡SQL注入式攻击;根据分片的SQL并行执行,解决了大数据量下的汇总统计性能问题;跨多分片的结果集合并, 极大地简化了应用程序的开发工作量。
第一步 下载与安装
平民软件官网地址: http://www.onexsoft.com
选择下载数据库中间件,如下图:
下载后解压到软件统一的目录后, 修改 demo.sh oneproxy.service 中的路径。
第二步 配置读写分离
OneProxy的读写分离配置主要是conf文件夹中的 proxy.conf
[oneproxy]
# 持久化操作,开启后将双进程互备
keepalive = 1
# 自动调整节点类型
proxy-auto-readonly = 1
# 线程数
event-threads = 32
# 对外显示的mysql版本
mysql-version = 5.6.38
# 客户端连接的地址
proxy-address = 0.0.0.0:3308
# web监控 信息展示地址
proxy-httpserver = 0.0.0.0:8080
# 读写分离的模式
# read-slave master不参与读
# read-balance master 参与读
proxy-group-policy = xiaobai:read-balance
# 设置主数据库地址
proxy-master-addresses.1 = 10.0.0.173:3306@xiaobai
# 设置从数据库地址
proxy-slave-addresses.2 = 10.0.0.198:3306@xiaobai
# 设置数据库用户地址
proxy-user-list.1 = root/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@xiaobai
proxy-user-list.2 = root_for_one/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@one
proxy-user-list.3 = root_for_proxy/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@proxy
用户地址可以设置多个, 每个用户针对不同的库,这样可以实现多个库的读写分离。

需要注意的是: proxy.conf中配置的数据库密码是加密后的, 加密当前密码的方式为:
在oneproxy的bin目录中,有个mysqlpwd命令, 通过 ./mysqlpwd xxxx 可以得到加密后的密码
全部配置完成后,可以通过 ./oneproxy.service start 启动读写分离, 可以查看进程和端口判断是否启动成功
第三步 测试读写分离
将两个库的表内容设置为不一样的,在客户端上 访问 搭建oneproxy服务的3308端口,多次执行select 查看内容是否有变化

至此,读写分离搭建成功,据官方文档说明, oneproxy还有分表分库的功能,目前我这边还用不到,等有时间了,可以好好研究研究
OneProxy实现mysql读写分离的更多相关文章
- 利用oneproxy实现mysql读写分离搭建笔记
功能: 1.具有SQL白名单(防SQL注入)及IP白名单功能的SQL防火墙软件 2.数据库故障切换 3.读写分离 4.分库分表 一.下载 官网下载:http://www.onexsoft. ...
- 使用Amoeba实现mysql读写分离机制
Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实 ...
- mysql读写分离(PHP类)
mysql读写分离(PHP类) 博客分类: php mysql 自己实现了php的读写分离,并且不用修改程序 优点:实现了读写分离,不依赖服务器硬件配置,并且都是可以配置read服务器,无限扩展 ...
- amoeba实现MySQL读写分离
amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...
- PHP代码实现MySQL读写分离
关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制 关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究, 这里主要写一点简单的代码来实现由PHP代码控制MyS ...
- 转:Mysql读写分离实现的三种方式
1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自 ...
- 使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置
参考博文: MySQL-(Master-Slave)配置 本人按照博友北在北方的配置已成功 我使用的是 mysql5.6.27版本. 使用Atlas实现MySQL读写分离 数据切分——Atlas读 ...
- MySQL读写分离技术
1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...
- php实现MySQL读写分离
MySQL读写分离有好几种方式 MySQL中间件 MySQL驱动层 代码控制 关于 中间件 和 驱动层的方式这里不做深究 暂且简单介绍下 如何通过PHP代码来控制MySQL读写分离 我们都知道 &q ...
随机推荐
- 20181023-11 Alpha发布
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2283 文案: Learning by Playing 界面清爽明快,UI ...
- 《Spring1之第五次站立会议》
<第五次站立会议> 昨天:试着做了一下主框架里的在线人数的显示代码: 今天:向小伙伴们请教了我代码的错误的解决方法以及对TCP/IP协议进行了相关的了解. 遇到的问题:虽然基本原理不难理解 ...
- 一个web项目中间的团队管理
一个web项目中间的团队管理 最近在参加一个比赛,我们选的题目是:MOOC大型网络在线课堂.这个题目是我们五个人都想做的,我们的成员都是志同道合的五个人. 作为团队的统率者: 定义规范 ...
- Ubuntu登录界面添加root用户登录选项
1.普通用户登录系统并打开终端 配置root密码 $sudo passwd 切换至root用户 $su root 输入密码 修改以下配置文件 $nano /usr/share/lightdm/ligh ...
- wamp 修改www目录
我的情况 Wamp版本:2.2 WAMP2.2安装目录:C:/ www目录:D:/wamp/www/ 变更目录:E:/HbuilderProjects/ 一 主要过程: (1)修改 D:\wamp\b ...
- ResNet笔记
参考: Deep Learning-TensorFlow (14) CNN卷积神经网络_深度残差网络 ResNet 先前的研究已经证明,拥有至少一个隐层的神经网络是一个通用的近似器,只要提高网络的深度 ...
- 结对&团队之1715|K班取经
声明:同学请勿抄袭,追责莫要怪我: 因为暂时闲着没事,就翻阅学长学姐的博客找找灵感,个人觉得应该还有人和我一样对软工实践未来的一大段路还很天真,包括目前的结对作业和团队组队也很迷路,于是写下这篇博客提 ...
- Js 中的原始值和引用值
最近遇写 node.js 时到一个问题,把对象当赋值给数组成员时总是出错,比如下面的代码, var Arr = new Array(); var Obj = new Object(); for(var ...
- Powershell笔记之MVA课程
很早之前看过MVA的Powershell课程,最近准备回顾一下,还是有一些意外的收获. <<快速入门 : PowerShell 3.0 高级工具和脚本>> 1. Invoke- ...
- [日常工作] 应用服务器上面应该尽量少开各种应用 --Chrome 内存泄露 让应用服务器非常缓慢
1. 前段时间修改 服务器的密码 导致应用程序的web site 启动有问题 ,打开chrome 查看了错误详细信息 但是忘记关了.. 今天反馈机器非常缓慢 简单看了下内存 吐血... 所以以后不能在 ...