MySQL и MariaDB LinuxMySQL 8.0/8.4Percona Server 8.0/8.4 1130

MySQL: ERROR 1130 Host is not allowed to connect

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

Правильное решение — разрешить только конкретный сервер приложения, сохранив сетевую изоляцию и минимальные права. Добавлять учётную запись для всех адресов (%) ради проверки не следует.

В этой статье
  1. Что означает неисправность и в каких условиях возникает
  2. Возможные причины: как различить
  3. Пошаговая диагностика и устранение
  4. Как проверить исправление и что делать, если оно не помогло

#Что означает неисправность и в каких условиях возникает

Ошибка ERROR 1130 (HY000): Host ... is not allowed to connect to this MySQL server означает, что сервер MySQL не разрешает соединение с данного исходного узла по имеющимся правилам учётных записей. Она отличается от ошибки 1045 при проверке пароля и от сетевого отказа 2003. Правильное решение — разрешить только конкретный сервер приложения, сохранив сетевую изоляцию и минимальные права. Добавлять учётную запись для всех адресов (%) ради проверки не следует.

#Возможные причины: как различить

Возможная причинаКак узнатьЧто делать
Нет записи для исходного узлаУ пользователя настроен доступ только с localhost, а приложение перенесли на другой сервер.Сообщение 1130 показывает новый адрес источника, на старом сервере вход работает.Создать согласованную учётную запись с ограниченным Host.
Изменился исходный адрес клиентаВ облаке, контейнере или после миграции изменился внешний адрес узла.IP в ошибке не равен ожидаемому адресу.Определить фактический адрес, обновить разрешённый Host и фильтрацию сети.
Неправильная запись DNS или HostПроверка имени сервера влияет на сопоставление с разрешённым Host.Адрес либо имя не совпадают с правилами.Проверить настройки разрешения адресов и использовать предсказуемую схему ACL.

#Пошаговая диагностика и устранение

  1. Различите код 1130 и сетевые ошибкиНайдите полную строку ERROR 1130 (HY000). Если вместо неё timeout, connection refused или ERROR 2003, соединение не дошло до проверки разрешённых узлов; сначала проверьте адрес, порт 3306, сетевую доступность и брандмауэр, не открывая базу в Интернет. Для 1130 продолжайте проверку учётных записей.
  2. Определите реальный сервер-источникПодключитесь к машине приложения по SSH и посмотрите в конфигурации, какой узел MySQL указан. В записях сервера MySQL и сообщении об ошибке найдите фактический IP клиента; при контейнерах и NAT это может быть не адрес виртуального интерфейса внутри контейнера. Уточните у сетевого администратора маршрут и адрес, с которого сервер видит приложение.
  3. Убедитесь, что подключаетесь к нужной БДНа сервере приложения в терминале используйте mysql -h db.internal.example -u app_user -p, заменив фиктивный домен внутренним адресом и имя своим. Введите пароль только по запросу. Если вы получили именно 1130, сохраните адрес и время; если 1045, запись Host найдена, а проблема уже в учётных данных или аутентификации.
  4. Проверьте существующие записи MySQLНа стороне БД в административном mysql выполните SELECT User,Host FROM mysql.user WHERE User='app_user';, заменив имя. Посмотрите, есть ли пара для конкретного IP/имени клиента. app_user@localhost и app_user@192.0.2.10 — разные учётные записи; отсутствие строки не нужно исправлять расширением существующей записи до %.
  5. Согласуйте минимальное разрешениеЕсли новой машине действительно нужен доступ, DBA создаёт либо обновляет только подходящую учётную запись для конкретного адреса клиента и предоставляет только нужные права к базе приложения. Для TLS используйте согласованные сертификаты/настройки, не отключайте проверку. Со стороны сети разрешите трафик лишь между двумя указанными серверами, не открывайте порт 3306 всем.
  6. Проверяйте изменения вне опасного рабочего сеансаДо изменения сохраните вывод SHOW GRANTS FOR ... для целевой пары user@host и запись о текущих сетевых правилах. Согласуйте тестовую проверку с нужного узла, чтобы не нарушить доступ других приложений. Если создаётся новая узкоспециализированная учётная запись, фиксируйте, как её отозвать через администратора; не меняйте глобальные параметры безопасности.
  7. Повторите попытку подключения и простой запросС машины приложения вновь выполните mysql -h ... -u ... -p, затем SELECT 1; в mysql. Если успешно, проверьте страницу и фоновые задания. Если возникает 1045, проблема перешла к аутентификации; если соединения нет на уровне сети, сохраните код и проверьте брандмауэр и маршрутизацию отдельно.
  8. Верните ограничения при неудачеЕсли создание ограниченной записи не помогло, отмените выданное разрешение через DBA, восстановите прежние настройки сети и изучите DNS, адрес за NAT и правила аутентификации MySQL. Не выполняйте FLUSH HOSTS для 1130: эта операция предназначена для другой ошибки — блокировки хоста из-за числа ошибок соединения (1129).
  9. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Выполняет администратор в mysql>; имя app_user необходимо заменить, пароль в запрос не включается.
    SQLКоманда
    Выполняет администратор в mysql>; имя app_user необходимо заменить, пароль в запрос не включается.
    SELECT User, Host FROM mysql.user WHERE User='app_user';
    Вариант 2Безопасная проверка после успешного подключения к нужному серверу БД.
    SQLКоманда
    Безопасная проверка после успешного подключения к нужному серверу БД.
    SELECT 1;

#Как проверить исправление и что делать, если оно не помогло

Успех — соединение с реального сервера приложения выполняет SELECT 1 и использует ожидаемую пару user@host, при этом доступ с непредусмотренных адресов остаётся закрытым. Если 1130 остаётся, приложите к заявке текст сообщения без паролей и фактический исходный адрес клиента.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.