MySQL运维实战之ProxySQL(9.6)SQL黑名单

作者:俊达

利用mysql_query_rules表中的error_msg字段,可以实现SQL黑名单的功能。如果规则设置了error_msg,当SQL语句匹配这条规则时,proxysql会直接将error_msg的内容返回给客户端。

当遇到一些大查询严重影响数据库性能时,可以使用proxysql规则临时屏蔽这些SQL。

查询stats_mysql_query_digest

可以先从stats_mysql_query_digest查询需要屏蔽的SQL,这里我们选择按查询的digest精确屏蔽某一类SQL:

bash 复制代码
mysql> select * from stats.stats_mysql_query_digest limit 1\G
*************************** 1. row ***************************
        hostgroup: 101
       schemaname: information_schema
         username: user1
   client_address:
           digest: 0x7ae1f8f3a35c883d
      digest_text: select * from information_schema.tables as t limit ?
       count_star: 1
       first_seen: 1690941618
        last_seen: 1690941618
         sum_time: 2822
         min_time: 2822
         max_time: 2822
sum_rows_affected: 0
    sum_rows_sent: 1

配置屏蔽规则

我们选择按查询的digest来屏蔽,往mysql_query_rules写入如下规则:

bash 复制代码
insert into mysql_query_rules
(rule_id, username, digest, error_msg, active, apply, comment )
values (10, 'user1', '0xa6843869f14d13ce', 'request denied by rule' ,1,1, 'request denied by rule');

load mysql query rules to runtime;
save mysql query rules to disk;

需要注意,屏蔽规则的rule_id需要比其它规则的rule_id小,proxysql是按rule_id的顺序依次判断是否匹配规则。

测试屏蔽效果

使用digest,屏蔽的是一类SQL,如果SQL只是传入的参数有差异,则SQL的digest一样,那么也会匹配该规则:

bash 复制代码
mysql> select * from information_schema.tables limit 1;
ERROR 1148 (42000): request denied by rule

mysql> select * from information_schema.tables limit 2;
ERROR 1148 (42000): request denied by rule

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

相关推荐
清平乐的技术专栏几秒前
【FlinkSQL笔记】(三)Flink SQL 核心重难点(窗口函数、水印)
笔记·sql·flink
艾莉丝努力练剑1 分钟前
【Linux网络】Linux 网络编程:HTTP(三)HTTP 协议原理
linux·运维·服务器·网络·c++·http
古怪今人3 分钟前
WSL和Hyper-V Ubuntu安装docker Docker安装Reids、MySQL、PostgreSQL和RabbitMQ
运维·docker·容器
周易宅5 分钟前
Docker MySQL 8.0.45 性能优化配置文档
mysql·docker·性能优化
安妮的小熊呢7 分钟前
CRMEB标准版v6.0: 商城DIY装修新升级,PS级自由设计!
运维·javascript·平面·信息可视化·小程序·开源软件
米高梅狮子7 分钟前
01.ELK企业日志分析系统
运维·服务器·网络·数据库·elk·oracle
逆境不可逃8 分钟前
Hello-Agents 第二部分-第九章总结:上下文工程
linux·运维·服务器
阿达hi8 分钟前
RPA 自动化SAP 流程授权
运维·自动化·rpa
团象科技9 分钟前
跨境业务链路频繁卡壳时,海外云服务器如何优化成本结构
运维·服务器
windawdaysss12 分钟前
离线学习SQL和数据库的工具及其部署
数据库·sql·学习