我在 Windows Server 2008 平台上使用 MySQL Community Server 5.5 和 PHP 5.3.3。我已经设置了每个用户的资源限制,特别是与数据库用户在一小时内运行的查询相关的限制。我已阅读此文档,它非常有趣,但它总是对我不起作用。
http://dev.mysql.com/doc/refman/5.5/en/user-resources.html
当我通过 mysql 命令行工具 (mysql.exe) 运行查询时,限制正常工作,如果每小时查询限制为 7,则在一小时内进行 7 次查询后,我收到错误:
错误 1226 (42000):用户 'user' 已超出 'max_questions' 资源(当前值:7)
以上是想要的行为。
当我通过 PHP 运行查询时(我用来连接数据库的用户与上面相同),查询限制不起作用:同一用户通过 php 可以运行它想要的所有查询,并且没有任何限制。如果我回到计数器上方的 mysql 命令行,计数器似乎被重置(即使时间还没有过去):我也可以在一小时内运行 7 个查询。我认为这不是想要的行为。似乎 PHP 重置了计数器并且没有触发查询限制。
PS:“用户”仅拥有SELECT,INSERT,UPDATE,DELETE
权限,并且在 PHP 代码中没有任何 SQL 代码,FLUSH USER_RESOURCES
因为用户“用户”无法运行(因为RELOAD
权限未分配给用户)
提前致谢