怎么限制用户使用的最大查询数 MAX_QUERIES_PER_HOUR设置

MAX_QUERIES_PER_HOUR 是 MySQL 原生账户级 SQL 执行频次限流机制,统计用户任意连续 60 分钟内所有语句总数,超限报错 ERROR 1226;建户用 CREATE USER WITH,改户用 ALTER USER WITH,设为 0 表示不限;失效主因是连接池复用、系统隐式查询计入、未刷权限或拼写错误。怎么用 MAX_QUERIES_PER_HOUR 限制用户每小时查询次数直接结论:max_queries_per_hour 是 mysql 原生支持的账户级限流机制,它统计的是「该用户账号在任意连续 60 分钟内发起的所有语句总数」(包括 select、show、explain,甚至某些隐式元数据查询),超限后立即报错 error 1226 (42000): user 'xxx' has exceeded the 'max_questions' resource。建用户时设置 vs 已有用户修改两种方式效果一致,区别只在时机:新建用户:CREATE USER 'api_user'@'%' IDENTIFIED BY 'pwd' WITH MAX_QUERIES_PER_HOUR 300;已有用户:ALTER USER 'report_user'@'localhost' WITH MAX_QUERIES_PER_HOUR 100;取消限制(恢复不限):ALTER USER 'user'@'host' WITH MAX_QUERIES_PER_HOUR 0;(注意:设为 0 才是"不限",不是省略)为什么你设了却没生效?常见踩坑点这个参数看似简单,但实际中失效频率很高,原因集中在三点:应用用了连接池(如 HikariCP、Druid)------MAX_QUERIES_PER_HOUR 是按「用户身份」累计,不是按连接或会话。一个连接反复执行 300 次 SELECT 就会触发限流,和连接数无关;系统自动查询也被计入:比如某些 ORM 启动时执行 SELECT DATABASE() 或 SHOW VARIABLES,这些都会消耗额度;未刷新权限:用 UPDATE mysql.user 直接改表后,必须执行 FLUSH PRIVILEGES;,而 CREATE/ALTER USER 不需要;注意拼写:错误写成 MAX_QUERY_PER_HOUR(少 s)或 MAX_QUESTIONS_PER_HOUR(旧别名,5.7+ 已弃用)会导致语法错误或静默忽略。MAX_QUERIES_PER_HOUR 和其他资源限制的区别它和同类参数不是互斥,而是各自独立计数: 文小言 百度旗下新搜索智能助手,有问题,问小言。

相关推荐
海绵宝宝转agent1 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭1 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT1 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Elastic 中国社区官方博客2 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
2601_962071572 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
红海云2 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba2 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭3 小时前
达梦事物特性及MVCC
linux·运维·数据库
卷无止境3 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路3 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数