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

相关推荐
m0_6831247911 分钟前
无U盘装Ubuntu
linux·运维·ubuntu
默|笙13 分钟前
【Linux】进程信号(2)_信号捕捉_中断
linux·运维·服务器
东方不败之鸭梨的测试笔记16 分钟前
UI自动化执行时,元素不在视野内,需要拖动滑动条才能找到,这种元素怎么处理?
运维·ui·自动化
Bat U20 分钟前
MySQL数据库|CRUD
数据库·mysql
qq_2837200523 分钟前
MySQL技巧(八) :死锁解决与实战案例
mysql·索引·锁机制·顺序·死锁
缘来是黎25 分钟前
prom QL
mysql
新新学长搞科研25 分钟前
【高届数人工智能会议】第七届人工智能、网络与信息技术国际学术会议(AINIT 2026)
运维·网络·人工智能·计算机网络·自动化·信号处理·可信计算技术
KKKlucifer27 分钟前
特权账号管理与运维安全审计核心技术
运维·安全
牛奶咖啡1333 分钟前
DevOps自动化运维实践_基于Cobbler搭建UEFI网络引导的自动安装平台
linux·运维·自动化·uefi·pxe·uefi网络引导自动安装平台·tftp dhcp 环境搭建
云飞云共享云桌面34 分钟前
东莞智能装备工厂10个solidworks共享一台服务器做装配体设计
运维·服务器·网络·云计算·电脑