ProxySQL企业实战应用

《童虎学习笔记》20分钟实战ProxySQL MGR高可用及读写分离架构 1 阅读详情

标题安装配置

1、安装perl的软件包支持
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev
2、下载proxySQL
https://proxysql.com/
https://github.com/sysown/proxysql/releases
3、 安装
[root@oldboy data]# rpm -ivh proxysql-2.0.4-1-centos7.x86_64.rpm
[root@oldboy data]# proxysql --version
ProxySQL version 2.0.4-116-g7d371cf, codename Truls
4、 启动
启动ProxySQL
[root@oldboy data]# chkconfig proxysql on
[root@oldboy data]# systemctl start proxysql
[root@oldboy data]# systemctl status proxysql

[root@oldboy data]# netstat -lnp|grep proxysql
tcp 0 0 0.0.0.0:6032 0.0.0.0:* LISTEN 3244/proxysql
tcp 0 0 0.0.0.0:6033 0.0.0.0:* LISTEN 3244/proxysql
5、ProxySQL配置文件概览
[root@oldboy data]# egrep -v “#|$” /etc/proxysql.cnf
datadir="/var/lib/proxysql"
errorlog="/var/lib/proxysql/proxysql.log"
admin_variables=
{
admin_credentials=“admin:admin”
mysql_ifaces=“0.0.0.0:6032”
}
mysql_variables=
{
threads=4
max_connections=2048
default_query_delay=0
default_query_timeout=36000000
have_compress=true
poll_timeout=2000
interfaces=“0.0.0.0:6033”
default_schema=“information_schema”
stacksize=1048576
server_version=“5.5.30”
connect_timeout_server=3000
monitor_username=“monitor”
monitor_password=“monitor”
monitor_history=600000
monitor_connect_interval=60000
monitor_ping_interval=10000
monitor_read_only_interval=1500
monitor_read_only_timeout=500
ping_interval_server_msec=120000
ping_timeout_server=500
commands_stats=true
sessions_sort=true
connect_retries_on_failure=10
}
mysql_servers =
(
)
mysql_users:
(
)
mysql_query_rules:
(
)
scheduler=
(
)
mysql_replication_hostgroups=
(
)
ProxySQL软件结构
proxysql的数据目录
[root@oldboy data]# ll /var/lib/proxysql/
total 312
drwxrwxr-x. 2 proxysql proxysql 6 May 31 15:01 perl5
-rw-rw-r–. 1 proxysql proxysql 1050 May 31 15:01 proxysql-ca.pem
-rw-rw-r–. 1 proxysql proxysql 1058 May 31 15:01 proxysql-cert.pem
-rw-------. 1 proxysql proxysql 163840 May 31 15:01 proxysql.db
-rw-rw-r–. 1 proxysql proxysql 1675 May 31 15:01 proxysql-key.pem
-rw-------. 1 proxysql proxysql 3791 May 31 15:01 proxysql.log
-rw-r–r--. 1 proxysql proxysql 5 May 31 15:01 proxysql.pid
-rw-------. 1 proxysql proxysql 135168 May 31 15:05 proxysql_stats.db
[root@oldboy data]#
ProxySQL内置库介绍
[root@oldboy data]# mysql -uadmin -padmin -h127.0.0.1 -P6032

mysql> show databases;
±----±--------------±------------------------------------+
| seq | name | file |
±----±--------------±------------------------------------+
| 0 | main | |
| 2 | disk | /var/lib/proxysql/proxysql.db |
| 3 | stats | |
| 4 | monitor | |
| 5 | stats_history | /var/lib/proxysql/proxysql_stats.db |
±----±--------------±------------------------------------+
5 rows in set (0.00 sec)
mysql>

main库:
内存配置数据库,表里存放后端db实例、用户验证、路由规则等信息。表名以 runtime_开头的表示proxysql当前运行的配置内容,不能通过dml语句修改,只能修改对应的不以 runtime_ 开头的(在内存)里的表,然后LOAD使其生效, SAVE使其存到硬盘以供下次重启加载。
disk库:
是持久化到硬盘的配置库,对应/var/lib/proxysql/proxysql.db文件,也就是sqlite的数据文件。
stats库:
是proxysql运行抓取的统计信息库,包括到后端各命令的执行次数、流量、processlist、查询种类汇总/执行时间等等。
monitor库:
存储monitor模块收集的信息,主要是对后端db的健康、延迟检查。
proxySQL配置应用
添加后端节点
mysql -uadmin -padmin -h127.0.0.1 -P6032
注:配置后端DB 的读写分组(hostgroup_id=0为主,hostgroup_id=1为从)

insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values (0,‘10.0.0.131’,3307,1,300,10,‘proxysql’);
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values (1,‘10.0.0.131’,3307,1,3000,10,‘proxysql’);
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values (1,‘10.0.0.131’,3308,5,3000,10,‘proxysql’);
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values (1,‘10.0.0.131’,3309,5,3000,10,‘proxysql’);

查询后端节点:
select * from mysql_servers;
proxySQL 配置相关层次结构
image.png
配置用户后端用户
后端主库创建用户:
mysql> grant all on . to mon@‘10.0.0.%’ identified by ‘123’;
mysql> grant all on . to app@‘10.0.0.%’ identified by ‘123’;
proxySQL中添加用户:
应用用户:
insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent)values
(‘app’,‘123’,1,0,1);
监控用户:
set mysql-monitor_username=‘mon’;
set mysql-monitor_password=‘123’;
配置HG
常用示例:
mysql> insert into mysql_group_replication_hostgroups(writer_hostgroup,backup_writer_hostgroup,reader_hostgroup,offline_hostgroup,active) values(0,2,1,3,1);
配置组策略
insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply)values(1,1,’^SELECT.*FOR UPDATE$’,0,1);insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply)values(2,1,’^SELECT’,1,1);

保存配置
load mysql servers to runtime;
load mysql users to runtime;
load mysql variables to runtime;

save mysql servers to disk;
save mysql users to disk;
save mysql variables to disk;load mysql servers to runtime;
测试读写分离

MySQL数据库透明加密与动态脱敏实战:TDE+ProxySQL构建零侵入安全防线 数据安全是数据库管理的核心挑战,涉及静态数据保护与动态访问控制两大层面。透明数据加密(TDE)通过在数据库存储引擎层自动加解密,实现对应用透明的静态数据保护,有效防范备份泄露、文件窃取等风险,其原理是利用表空间密钥和主密钥在数据页写入磁盘时加密,读取时自动解密,性能损耗可控。动态数据脱敏(DDM)则在数据访问时根据用户角色实时变形敏感信息,平衡了数据使用与隐私保护。结合数据库网关(如ProxySQL)可实现策略集中管理与复杂场景适配,形成纵深防御。本文以MySQL社区版TDE与ProxySQL网关为例,详解 阅读详情

相关推荐

Ubuntu 16.04下用ProxySQL实现MySQL语义级查询缓存

MySQL查询缓存是提升数据库读性能的基础技术手段,其核心原理在于拦截重复SQL请求、复用结果集以降低后端负载。传统方案如应用层Redis缓存需手动管理key、易受字段顺序影响;MySQL原生Query Cache则因表级失效和全局锁已被弃用。ProxySQL作为中间件层缓存,通过Query Digest归一化SQL模板,支持参数化匹配与TTL控制,实现真正的语义级缓存。该方案无需修改应用代码或表结构,特别适用于Ubuntu 16.04等老旧但合规的生产环境——依托GLIBC 2.23、OpenSSL 1.

weixin_34161032的博客 473

ProxySQL + MySQL MGR 实现读写分离实战

万字详解 MySQL MGR 高可用集群搭建ProxySQL 和 ShardingJDBC 属于竞品关系,国内使用ShardingJDBC更多,国外使用ProxySQL更多。当我们搭建好了MGR集群,由于组复制的存在,保证每个节点的数据都是强一致的。不会出现主节点有数据,而从节点没有数据的情况。

保持学习 2229

Mysql中间件 ProxySQL 进行数据库读写分离

在拓扑结构中,ProxySQL部署在应用程序和MySQL集群的中间位置。应用程序向ProxySQL发起SQL语句,ProxySQL分析收到的SQL语句,进行匹配、重写等操作,然后路由给后端MySQL集群中的实例。 ProxySQL 两个版本:官方版和percona版, percona版是基于官方版基础上修改,C++语言开发,轻量级但性能优异(支持处理千亿级数据) 具有中间件所需的绝大多数功能,包括: 多种方式的读/写分离 定制基于用户、基于schema、基于语句的规则对SQL语句进行路由 缓存.

Bertram的博客 923

灵活强大的MySQL代理中间件ProxySQL应用实战(1)

一、常见的Mysql中间件介绍 很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以分库分表。下面介绍下常见的开源mysql中间件。 DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。 Atlas是由奇虎360公发...

weixin_33795833的博客 738

Linux安装ProxySql(图文解说详细版)

ProxySQL是一个高性能的开源数据库代理,专门用于在数据库系统和客户端之间进行流量路由和负载均衡。它能够管理和优化数据库连接,提高应用程序的性能和可用性。ProxySQL支持多种数据库系统,包括MySQL、MariaDB、Percona等,使其成为了许多企业和开发者在构建大规模、高性能数据库架构时的首选工具。ProxySQL能够将客户端请求均匀地分配到多个后端数据库服务器上,从而实现负载均衡,提高数据库的吞吐量和响应能力。

编码人生 2240

Orcad原理图导入Allegro

在即将设计的PCB中,将层叠设置好后,执行File→import→parameters,将刚才导出的.prm文件导入,很多参数就自动设置好了,与已完成的PCB里的参数保持一致。具体操作是:在已完成的PCB里执行File→Exoprt→Parameters,弹出下图所示的对话框,选择需要导出的设计参数后,设置到导出路径,导出记录设计参数的文件(.prm)。在.brd文件导入网表后,往往需要页面大小、格点、各层叠里各要素显示颜色等参数,手动设置十分麻烦,我们可以在一块已经完成的PCB里导出记录设计参数的文件。

sinat_27007097的博客 2085

ProxySQL!像C罗一样的强大!

关注↑↑↑我们获得更多精彩内容!作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,...

Enmotech的博客 1211

用示波器抓取同步Buck自举电容波形:从充电回路到SW节点振铃的完整分析

本文通过实测TI TPS54561和MPS MPQ4572同步Buck芯片,详细解析了自举电容在充电、维持和放电三个工作阶段的波形特征。重点揭示了电感泄放回路与充电回路重叠时,在SW节点引发的振铃现象及其产生机理,并提供了串联阻尼电阻等有效的工程抑制方法。文章结合示波器实测,为硬件工程师提供了从波形观测到问题调试的完整实践指南。

weixin_29276847的博客 371

MySQL课程-ProxySQL企业实战应用

安装配置 1、安装perl的软件包支持 yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev 2、下载proxySQL https://proxysql.com/ https://github.com/sysown/proxysql/releases 3、 安装 [root@oldboy data]# rpm -ivh proxysql-2.0.4-1-centos7.x86_64.

weixin_46837396的博客 113

Ubuntu 22.04下Minkowski Engine编译避坑指南:解决Cuda 12.2与Pytorch cu118版本冲突

本文详细介绍了在Ubuntu 22.04系统中解决Minkowski Engine编译时Cuda 12.2与Pytorch cu118版本冲突的实用方法。通过修改版本检查逻辑、创建兼容符号链接等技巧,帮助开发者顺利完成编译,并提供了性能优化建议和替代方案,确保三维点云处理任务的高效运行。

weixin_42543309的博客 161

Trae AI开发工具:大前端环境配置与避坑指南

大前端开发的第一步往往不是选框架,而是搭建一套可靠的工具链。IDE作为编码、调试与AI能力协同的载体,直接决定后续开发的顺畅度。传统编辑器需要手动拼装插件生态,而新一代AI开发工具将对话、代码生成与项目脚手架能力内置到编辑器底层,降低了环境准备的门槛。Trae基于VS Code内核,兼容其插件体系,同时提供Chat、Builder、内联对话三种AI交互模式,适合从VS Code迁移的开发者,也适合大前端新人快速上手。安装时需认准官方渠道,注意Node.js、Git版本联动,配置自动格式化与手动更新策略,并结

weixin_26833139的博客 281

PROXYSQL 搭建步骤,配合MYSQL MGR 高可用方案

MySQL 高可用的方案中,互联网企业使用的高可用的方式是比较丰富的,但大多离不开主从复制,BINLOG,据我所知,有的互联网企业早就自己写了一套高可用的软件,来控制MYSQL 的高可用...

sql server的专栏 763

超临界二氧化碳再热再压缩布雷顿循环建模与先进控制

超临界二氧化碳布雷顿循环建模与先进控制研究 本文研究了超临界二氧化碳再热再压缩布雷顿循环系统的建模与控制。通过MATLAB/Simscape构建了包含压缩机、透平、回热器等关键组件的动态模型,并设计了基于模型预测控制(MPC)和自抗扰控制(ADRC)的多层控制策略。系统采用转速控制的压缩机、阀门开度控制的透平,以及可变热源加热器,实现了全动态分析。研究结果表明,MPC与ADRC混合控制方案相较于传统PID控制,功率超调降低至0.9%,效率波动控制在±0.08%,扰动恢复时间缩短至12秒。

AI的内部世界的博客 340

Ubuntu 16.04下用ProxySQL实现MySQL查询缓存实战

MySQL查询缓存是提升高并发读性能的关键技术手段,其核心原理是将规范化后的SELECT语句结果暂存于内存,避免重复执行相同查询。ProxySQL作为轻量级SQL代理中间件,通过SQL规范化(normalize_query)、正则匹配规则(match_digest)与毫秒级内存缓存(cache_ttl),在不修改应用代码的前提下实现透明化缓存加速。相比已废弃的MySQL原生query_cache和侵入性强的Redis方案,ProxySQL具备无感接入、精准失效、自动路由等工程优势,特别适用于Ubuntu 1

weixin_30664051的博客 435

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 842

23种设计模式-享元(Flyweight)设计模式

软考中级-软件设计师 享元设计模式

片言可决讼,半纸能缚龙 3223

mysql+proxy作用_Mysql Proxysql 多路复用到底有多大作用

POSTGRESQL 在多并发连接的时候,会考虑使用pgbouncer , MYSQL 实际上很少听到说,还要使用代理的情况, 大多都是直接连接到mysql或者即使有中间件,也没有提到多路复用的技术.实际上PROXYSQL 是支持多路复用技术应用在 MYSQL 上的,具体到底怎么应用,应用以后会怎样,这都是本篇需要说的问题.如果没有在ProxySQL中的多路复用是一个允许多个前端连接复用同一个数据...

weixin_42701915的博客 563

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5553

高性能MySQL代理:深入探索ProxySQL

高性能MySQL代理:深入探索ProxySQL 一、项目介绍 欢迎来到ProxySQL的世界——一款专为MySQL及其衍生版本(如Percona Server和MariaDB)打造的高性能数据库代理服务。自问世以来,其目标就是填补市场空白,提供一款兼具速度与功能性的开放源代码代理解决方案。与其他同类产品相比,ProxySQL以其出色的性能表现脱颖而出,具体数据可查阅其官方展示页面:http://w...

gitblog_00018的博客 1244

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PROXYSQL 怎么满足只读需求,满足读banlance的需求

关于MYSQL的读写的需求,大部分都是在跟读作战,怎么读写分离,是在应用上实现, 或者通过的dns 转接,还是通过简单的中间件实现, 实际上这和需求以及当时可以满足需求的技术以及功耗比有...

sql server的专栏 244

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【亲测免费】 推荐开源项目:ProxySQL Admin及其家族工具

推荐开源项目:ProxySQL Admin及其家族工具 在数据库管理和高可用性解决方案的领域中,ProxySQL Admin家族是一个值得高度关注的开源宝藏。这个系列工具包括了ProxySQL Admin、ProxySQL Status和Percona Scheduler Admin,专为优化Percona XtraDB集群与ProxySQL的协同工作而生。今天,我们将深入探讨ProxySQL A...

gitblog_00353的博客 812

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MariaDB连接池终极配置:ProxySQL vs HAProxy性能对决

还在为数据库连接性能问题头疼吗?高并发场景下,原生MariaDB连接管理往往成为性能瓶颈。本文将为你详细解析MariaDB连接池的最佳配置方案,并通过实测数据对比ProxySQL与HAProxy的性能表现。 ## 📊 MariaDB连接配置核心参数 MariaDB Server的连接管理主要通过以下关键参数控制: - **max_connections**: 最大连接数限制(默认151)

gitblog_00946的博客 861
上一篇: 操作文件基础属性
下一篇: MySQL 5.6 ,5.7 ,8.0在安装部署的异同
Jsben
博客等级 码龄7年 38粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值