@Adel1ne

SQLSTATE[HY000] [1129] Host 'XX.XX.XX.XX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts?

Здравствуйте!

Поднял сайт на OpenServer'e в локалке, как бы все устраивает, но периодически появляется такая вот ошибка. Помогает только перезапуск OpenServer'a.

Сайт на движке Yii2, на сервере, где расположен сайт установлен БлокХост.
Все запросы к БД через соответствующие модели таблиц:
например ModelName::findOne(['id' => $id]);
, правда есть кое-где запросы такого вида:
ModelName::findBySql('SELECT * FROM table')->all();

Еще в коде реализована функция exec('ping '.$compName, $cmd);

Это все, что вызывает у меня подозрение.

Подскажите, как можно проанализировать причину возникновения ошибки в MySQL?
В интернете советуют сперва проверить TCP/IP, опять же, как это можно сделать?
  • Вопрос задан
  • 817 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vshvydky
погуглил за вас: документация MySQL
Почему так может быть? Я могу предположить что вы в цикле открываете кучу соединений и через них выдираете какие-то данные, например
for(id = 1, id < 10000000, id++)
подключиться к базе, для выборки этого ид.

Дабы проверить мое предположение, можно посмотреть на SQL консоли:
SHOW FULL PROCESSLIST
Удобный инструмент для работы с MySQL dbForge Studio
Отдельно отмечу, что SHOW FULL PROCESSLIST показывает результат на сейчас и чтобы использовать ее как онлайн мониторинг, можно воспользоваться выше указанной программой, там есть настройка частоты обновлений запроса, ставишь 1 секунда и ждешь пока твой сайт не начнет флудить сервер, далее смотришь какой код он туда гадит, ищешь его в своем коде, переписываешь.
И да, на счет перезапуска сервера:
unblock with 'mysqladmin flush-hosts
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы