Я использую MySQL Community Server 5.5 с PHP 5.3.3 на платформе Windows Server 2008. Я установил ограничения на пользовательские ресурсы, в частности ограничение, связанное с запросами, выполняемыми пользователем БД в течение одного часа. Я прочитал этот документ, и это очень интересно, но всегда это не работает для меня.Предел «max_questions» не соблюдается при запуске MySQL-запроса через PHP
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'? –
Зачем вам такие странные ограничения? –
PHP запускает запросы, используя учетную запись user @ localhost, и работает корректно (привилегии правильно соблюдаются, ограничивая количество запросов). –