Я решил (частично) проблему.
Проблема возникает, только если запрос, включающий компонент MAX_QUERIES_PER_HOUR, также включает в себя один из следующих элементов, отличных от 0:
MAX_CONNECTIONS_PER_HOUR !=0
MAX_USER_CONNECTIONS !=0;
, например:следующий запрос гранта никогда не вызовет сообщение об ошибке, связанное с достижением лимита запросов в PHP:
GRANT USAGE ON *.* TO 'user'@'localhost'
WITH MAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5
MAX_USER_CONNECTIONS 2;
Вместо этого следующий грант работает правильно, и MySQL правильно применяет ограничения.
GRANT USAGE ON *.* TO 'user'@'localhost'
WITH MAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 0
MAX_USER_CONNECTIONS 0;
Короче говоря, когда ограничение запросов установки параметров запроса включает один из компонентов, MAX_CONNECTIONS_PER_HOUR и MAX_USER_CONNECTIONS, отличный от 0, ограничения, связанные с MAX_QUERIES_PER_HOUR и MAX_UPDATES_PER_HOUR, игнорируются: мои страницы PHP могут выполнять все запросы, которые они хотят.В противном случае ограничение понимается, и сообщение
превысило ресурс 'max_questions'
правильно отображается при наступлении события достижения лимита запросов.
Как я уже говорил выше, проблема не возникает, когда я использую инструмент командной строки mysql.Это происходит только тогда, когда запросы выполняются через страницы PHP.