我在Windows Server 2008平台上使用MySQL社区服务器5.5和PHP 5.3.3。 我已经设置了每个用户的资源限制,特别是与DB用户在一个小时内运行的查询相关的限制。我已经阅读过这份文件,它非常有趣,但总是不适合我。当通过PHP运行MySQL查询时,“max_questions”限制不受尊重
http://dev.mysql.com/doc/refman/5.5/en/user-resources.html
当我通过运行mysql命令行工具(的mysql.exe)限制正常工作和查询,如果每小时查询限为7,后一小时内,7个查询我收到错误:
ERROR 1226 (42000): User 'user' has exceeded the 'max_questions' resource (current value: 7)
这是上面的通缉行为。
当我通过PHP运行查询(我用来连接数据库的用户与上面相同)时,查询限制不起作用:通过php的同一用户可以运行所有查询任何限制。如果我回到上面的mysql命令行,计数器似乎被重置(即使时间没有过去):我也可以在一个小时内运行7个查询。 我认为这不是想要的行为。似乎PHP重置计数器并不会触发查询限制。
PS:“用户”只拥有SELECT,INSERT,UPDATE,DELETE
特权,并在PHP代码没有任何SQL代码为FLUSH USER_RESOURCES
用户“用户”不可能跑(因为RELOAD
权限没有分配给用户)
在此先感谢
你是否仅限制`user @ localhost`而不是`user @ host-your-php-code-runson`? – 2011-02-09 10:19:14
为什么你需要这种奇怪的限制? – 2011-02-09 10:28:52