0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 1123 Просмотров
*

Bat9l

  • Новичок
  • 6
  • 0 / 0
Доброе время суток.
На некоторых хостингах администраторы устанавливают ограничение на максимальное количество запросов к базе данных в час. При превышении этого значения выдается сообщение об ошибке вида: User 'имя_пользователя' has exceeded the 'max_questions' resource (current value: 90000), где 90000 это и есть максимальное количество запросов.
Я нашел статью в интернети как решить это но она не работает вот пример:
Итак, приступим:

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

Вот что пробую я но не получается все Неправильно.
public $dbtype = 'mysqli';
public $host = 'localhost';
public    $users = array("user", "user1", "user2", "user3");
public        $user = $users[array_rand($users)];

public $password = '123';
Кто знает как это сделать буду благодарин очень!
*

Shadowofrander

  • Новичок
  • 2
  • 0 / 0
*

AlekVolsk

  • Гуру
  • 6399
  • 360 / 4
Цитировать
public    $users = array("user", "user1", "user2", "user3");
public        $user = $users[array_rand($users)];
Это не сработает, J это не поймет. Надо серьезно допиливать ядро и предлагать pull request, но шансы на это практически никакие.
*

Bat9l

  • Новичок
  • 6
  • 0 / 0
Может кто то уже побывал, сталкивался так сказать, может есть решенная уже эта проблема, должна ведь быть оптимизация версия уже j 3....
*

AlekVolsk

  • Гуру
  • 6399
  • 360 / 4
О, от версии J это не зависит, как и от самой J. Зато от вас зависит, каким именно хостером обслуживать ваши сайты, и текущий выбор - однозначно неудачен.
А еще можно покапаться и оптимизировать код, который создает такое кол-во запросов.
Кстати, посещаемость юников сколько?
*

Bat9l

  • Новичок
  • 6
  • 0 / 0
О, от версии J это не зависит, как и от самой J. Зато от вас зависит, каким именно хостером обслуживать ваши сайты, и текущий выбор - однозначно неудачен.
А еще можно покапаться и оптимизировать код, который создает такое кол-во запросов.
Кстати, посещаемость юников сколько?

Да хостер больше не дает как 90000, плачет что их сервак умрет)))) у меня на нем 4 под домена 4 бд, в среднем посещаемость 300-500, когда стал расти до 1000 и выше сайт тормазил потом вешалсяи вот ошибка, временами только успевал чистить сессию в ручную чистил бд, помогало, но пользователи наверное уставали от бесконечного лагаута, компоненты конечно не оптимизировал плагины не трогал так немного касеков исправлял после обнов, но все работало устойчиво пока пользователей не стало больше... 
*

AlekVolsk

  • Гуру
  • 6399
  • 360 / 4
У, батенька. да вам не просто менять его надо, а бежать от него без оглядки, желательно с приобретением vds, раз уж там у вас столько всего.
*

insaider_kr

  • Новичок
  • 7
  • 0 / 0
1. создаем 3 пользователей для доступа к нашей БД с одинаковыми правами и одним и тем же паролем.
пример: myuser1, myuser2, myuser3
2. В файле configuration.php
комментируем код
/*public $user = 'myuser';*/

myuser -  здесь имя пользователя БД

3. в файле /libraries/joomla/factory.php
заменяем строку
$user = $conf->get('user');
на строки
$users = array("myuser1", "myuser2", "myuser3");
$user = $users [array_rand($users)];

Все приятного использования

*

vitzer

  • Захожу иногда
  • 267
  • 4 / 0
1. создаем 3 пользователей для доступа к нашей БД с одинаковыми правами и одним и тем же паролем.
пример: myuser1, myuser2, myuser3
2. В файле configuration.php
комментируем код
/*public $user = 'myuser';*/

myuser -  здесь имя пользователя БД

3. в файле /libraries/joomla/factory.php
заменяем строку
$user = $conf->get('user');
на строки
$users = array("myuser1", "myuser2", "myuser3");
$user = $users [array_rand($users)];

Все приятного использования


Что это дает?
*

insaider_kr

  • Новичок
  • 7
  • 0 / 0
Что это дает?
мы уходим от ошибки User 'имя_пользователя' has exceeded the 'max_questions' resource (current value: 90000)
т.е. для подключения к БД у нас произвольно берется пользователь  myuser1, myuser2, myuser3
соответственно возникновение ошибки описанной топик стартером уменьшается в 3 раза.
Но все зависит. от того скольких пользователей БД разрешает завести хостер, мой разрешает 1000 ;-)
*

insaider_kr

  • Новичок
  • 7
  • 0 / 0
мы уходим от ошибки User 'имя_пользователя' has exceeded the 'max_questions' resource (current value: 90000)
т.е. для подключения к БД у нас произвольно берется пользователь  myuser1, myuser2, myuser3
соответственно возникновение ошибки описанной топик стартером уменьшается в 3 раза.
Но все зависит. от того скольких пользователей БД разрешает завести хостер, мой разрешает 1000 ;-)
или же другими словами мы распределяем нагрузку на базу между пользователями БД, а это если не ошибаюсь очень актуально при работе с базами где тип таблиц MyISAM - хотя я могу в этом утверждении и ошибаться
*

voland

  • Легенда
  • 9854
  • 544 / 107
  • Эта строка съедает место на вашем мониторе
*

insaider_kr

  • Новичок
  • 7
  • 0 / 0
Ну и бред!
спасибо и вам хорошего дня
но проблема имеет место быть и на данном этапе есть предложенное решение
*

ChaosHead

  • Живу я здесь
  • 4921
  • 428 / 13
Мне кажется вам просто кэширование надо настроить и количество запросов снизится. Что там там у вас запрашивается 90000 раз в час, не одно и то-же ли?
« Последнее редактирование: 01.03.2017, 09:04:52 от ChaosHead »
*

ProtectYourSite

  • Завсегдатай
  • 1278
  • 80 / 4
  • Безопасность вебсайтов
Мнимый уход от проблем, надо сайт оптимизировать, а не городить кучу бд.
*

insaider_kr

  • Новичок
  • 7
  • 0 / 0
Мне кажется вам просто кэширование надо настроить и количество запросов снизится. Что там там у вас запрашивается 90000 раз в час, не одно и то-же ли?
Насчет кэширования полностью с Вами согласен, но не всегда это удается сделать, особенно когда имеется гремучая смесь Joomla и VirtueMart и в VirtueMart сидит более 2000 товара с изменяемыми доп характеристиками, фильтрами и т.п. Из всех протестированных способов ни один не дал приемлемого результата. И на данном этапе пока продолжаются поиски, такое решение является заплаткой обеспечивающей работоспособность сайта.
« Последнее редактирование: 08.03.2017, 11:59:50 от insaider_kr »
*

SmokerMan

  • Гуру
  • 5293
  • 719 / 26
странная проблема, логичнее было бы поменять хостинг и не изобретать велосипед
можно попробовать переключать через системный плагин
Код
$config = JFactory::getConfig();
$config->set('user', 'username');
но опять же надо знать в какой момент переключать)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дебаг sql запросов

Автор m4xuser

Ответов: 4
Просмотров: 119
Последний ответ 25.12.2017, 12:49:58
от dmitry_stas
Количество отображаемых записей в панели управления

Автор Modis

Ответов: 4
Просмотров: 143
Последний ответ 20.12.2017, 15:08:07
от Modis
Количество материалов подкатегорий

Автор yanetcoi

Ответов: 0
Просмотров: 141
Последний ответ 27.07.2017, 16:33:51
от yanetcoi
Как ограничить количество отправки писем с сайта?

Автор lubashina

Ответов: 4
Просмотров: 306
Последний ответ 12.04.2017, 17:45:25
от voland
Как настроить количество сиволов в поиске по меткам? Поиск сбрасывается?

Автор Apollon

Ответов: 8
Просмотров: 609
Последний ответ 03.01.2017, 22:58:23
от Apollon