AWS RDS – SQLSTATE[HY000] [1130] Хост ‘ec2-ip’ не имеет права подключаться к этому MySQL серверу

Вопрос или проблема

Моя база данных приложения Laravel (размещенного на EC2) (Mysql) размещена в AWS RDS, и раньше она работала нормально, но теперь выдает ошибку “SQLSTATE[HY000] [1130] Хост ‘172…***’ не имеет разрешения на подключение к этому MySQL серверу” при каждом запросе к API. Я не могу подключиться к базе данных, чтобы выполнить какой-либо SQL-запрос (например, SHOW GRANTS), и пробую изменить параметры безопасности. Некоторые советуют выполнить следующее

mysql -h rdsendpoint -u admin -p

но я не могу подключиться.

Группа безопасности EC2, используемая в RDS, это
вставьте описание изображения здесь

Ответ или решение

Ошибка "SQLSTATE[HY000] [1130] Host ‘ec2-ip’ is not allowed to connect to this MySQL server" обычно возникает из-за неправильной конфигурации разрешений для доступа к вашему MySQL серверу, размещенному в AWS RDS. Эта ошибка указывает на то, что ваш экземпляр EC2 не имеет разрешения на подключение к RDS.

Возможные причины и решения:

  1. Проверка параметров безопасности RDS:

    • Перейдите в консоль управления AWS, выберите ваш экземпляр RDS и проверьте группу безопасности, к которой он относится.
    • Убедитесь, что к группе безопасности добавлено правило, разрешающее входящие подключения с IP-адреса вашего EC2 экземпляра.
      • Для этого откройте настройки группы безопасности и добавьте новое правило. Установите тип на "MySQL/Aurora" (или TCP с портом 3306), и укажите IP-адрес вашего EC2 инстанса в качестве источника (например, 172.x.x.x/32).
  2. Проверка конфигурации MySQL:

    • Если у вас есть возможность подключиться к RDS через другой клиент (например, через MySQL Workbench или командную строку), запустите следующую команду, чтобы просмотреть текущие разрешения:
      SHOW GRANTS FOR 'admin'@'ec2-ip';
    • Если вы видите, что не установлены разрешения для вашего EC2 инстанса, вам нужно будет добавить их:
      GRANT ALL PRIVILEGES ON *.* TO 'admin'@'ec2-ip' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
  3. Изменение хоста в MySQL:

    • Вам может потребоваться создать нового пользователя в MySQL, который будет разрешен для доступа с вашего EC2 инстанса:
      CREATE USER 'newuser'@'ec2-ip' IDENTIFIED BY 'yourpassword';
      GRANT ALL PRIVILEGES ON your_database.* TO 'newuser'@'ec2-ip';
      FLUSH PRIVILEGES;
  4. Проверка конфигурации подключения:

    • Убедитесь, что вы используете правильный RDS endpoint и другие параметры подключения в файле конфигурации вашего Laravel приложения (.env файл):
      DB_CONNECTION=mysql
      DB_HOST=rdsendpoint
      DB_PORT=3306
      DB_DATABASE=your_database
      DB_USERNAME=admin
      DB_PASSWORD=yourpassword
    • Убедитесь, что вы применили правильные значения и не допускали ошибок в именах.
  5. Проверка сетевых настроек:

    • Убедитесь, что ваш экземпляр EC2 находится в той же VPC, что и ваш RDS экземпляр, или что у вас правильно настроены маршруты, если они находятся в разных VPC.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...