Mysql connect error [localhost]: (1040) Too many connections (400)

Данная ошибка битрикса возникает в случае превышения лимита одновременных соединений с базой данных MySQL.

Причины ошибки

Как сказано выше, причина проста - "Много одновременных соединений с БД". Стоит понимать, что имеется ввиду БД с которой работает Битрикс, но с этой БД может и работать другой сайт по удаленному подключению. Причины:

  • Много пользователей на сайте;
  • DDos атака на сайт;
  • DDos атака на сайт, который использует данную БД через удаленное подключение;
  • Ошибка в скрипте сайта (в следствии чего, сайт не может закрывать запросы, при этом образовывается много SLEEP запросов);
  • Ошибка в скрипте сайта, который использует удаленное подключение (в следствии чего, сайт не может закрывать запросы, при этом образовывается много SLEEP запросов);

Методы обнаружения проблемы

Чтобы обнаружить, в чем именно проблема, нужноузнать количество соединений к MySql и проанализировать их (время, какой пользователь делает, с какого IP).
Пример анализа запросов к БД

Как исправить

Есть всего 3 варианта исправления: увеличить количество одновременных соединений (если проблема связанна с большим посещением сайта реальных пользователей ), отражение DDOS атаки, или оптимизацией кода сайта. Как вы понимаете, универсального рецепта нет и быть не может. Если вам не помогло увеличения лимита, и вы не знаете что делать в случае DDOS или как оптимизировать код сайта - обращайтесь к профессионалам.


© Copyright 2009 - 2017. Программирование и верстка руками и с умом. ИТ-аутсорс для СНГ.

ИП Шкабко Роман, Код ЕДРПОУ: 34047020