Ошибка MySQL 1226: превышено допустимое количество запросов

  • Пятница, 17 февраля 2006

На некоторых хостингах администраторы устанавливают ограничение на максимальное количество запросов к базе данных в час. При превышении этого значения выдается сообщение об ошибке вида: User 'имя_пользователя' has exceeded the 'max_questions' resource (current value: 72000), где 72000 это и есть максимальное количество запросов. Превышение ограничения может происходить по разным причинам: хостер выставил маленькое значение, высокая посещаемость сайта, установлены «тяжелые» компоненты (статистика, нестандартные реализации SEF) и т.д. Недавно, на официальном форуме Joomla, я нашел интересное решение этой проблемы.

Решение этой проблемы основывается на том, что ограничение выставляется для конкретного пользователя базы данных. Поэтому, если создать несколько пользователей с одинаковыми правами и автоматически переключать их в конфигурационном файле Joomla, то можно побороть это ограничение.

Итак, приступим:

  1. Идем в панель управления хостингом (CPanel, DirectAdmin, vDeck и т.д.). И создаем 2-5 пользователей для вашей базы данных с теми же правами и паролем, что и у основного пользователя базы данных вашего сайта. После создания пользователей обязательно дайте им привелегии для доступа к базе данных вашего сайта — они должны быть полными копиями основного пользователя. Допустим мы создали 3-х дополнительных пользователей: myjoomla_user1, myjoomla_user2 и myjoomla_user3.
  2. Открываем в любом редакторе конфигурационный файл configuration.php и находим в нем переменные с логином пользователя базы данных:
    $mosConfig_user = 'myjoomla_user';
    
  3. Заменяем эту строчку на следующий код:
    $mosConfig_users = array("myjoomla_user", "myjoomla_user1", "myjoomla_user2", "myjoomla_user3");
    $mosConfig_user = $mosConfig_users[array_rand($mosConfig_users)];
    
  4. Сохраняем изменения в файле configuration.php.

Как это будет работать? Очень просто: при обращении к сайту переменной $mosConfig_user автоматически будет случайным образом присваиваться один из 4 имеющихся пользователей. Таким образом общее количество запросов к сайту будет поделено на количество пользователей.

Примечание: при изменении в административной панели Joomla параметров глобальной конфигурации, файл configuration.php полностью перезаписывается. Поэтому, если вы решили воспользоватся приведенным выше способом решения проблемы превышения количества запросов, не забывайте, после каждого изменения конфигурации в административной панели, вносить модификации в файл configuration.php.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla