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 ...
随机推荐
- OO学习第一阶段总结
前言 虽然之前接触过java,也写过一些1000行左右的程序.可以说面向对象的思想和java的一些基本语法对我来说是没有难度的,但是这学期的面向对象依然给了我一个下马威.这几次的作业每次都很让我头疼. ...
- 实验三— —敏捷开发与XP实践
---恢复内容开始--- java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实 验 报 告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:2013 ...
- iOS 开发学习-import和include的区别
//当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 //但是使用两次#import的话,不会报错,所以他可以解决重复导入的 ...
- fullPage全屏高度自适应
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 编程之法section II: 2.1 求最小的k个数
====数组篇==== 2.1 求最小的k个数: 题目描述:有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 解法一: 思路:快排后输出前k个元素,O(nlogn). writer: zz ...
- PMS---团队展示
点我查看作业原题 [队名] PMS(一群pm) [拟做的团队项目描述] 基于监控场景的视频摘要与人车检测跟踪系统 A system, under monitor scene, for video su ...
- KEIL C51 printf格式化输出特殊用法
作者:dragoniye 发布:2014-02-15 12:44 分类:硬件 抢沙发 /*******************************************KEI ...
- TCP系列53—拥塞控制—16、Destination Metrics和Congestion Manager
一.概述 我们之前介绍过rtt.ssthresh等变量,这些变量一般在TCP连接建立的时候有个初始值,然后随着TCP的数据交互逐渐调整到适应对应的网络状态的值.但是如果每次TCP建立连接都依靠默认初始 ...
- 七类网线 支持10gb/s的速度的计算方法
0. 说明 我是数学白痴, 只是套了下公式... 1. 七类网线的参数: 七类线 ISO/IEC 7类/F级标准 中最新的一种双绞线,它主要为了适应万兆位以太网技术的应用和发展.但它不再是一种非屏蔽双 ...
- 微软自己的官网介绍 SSL 参数相关
https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?redirectedfr ...