не удается подключиться к aws rds mysql из экземпляра aws ec2 через веб-браузер

Я настроил экземпляр AWS RDS и экземпляр AWS EC2, и я считаю, что я настроил группу безопасности, чтобы разрешить как внутреннему IP-адресу экземпляра EC2, так и общедоступному IP-адресу доступ к экземпляру RDS. если я подключаюсь к экземпляру EC2 через ssh-клиент, набираю команду:

mysql -u xxx -p -h AWS_RDS_endpoint.com

Соединение установлено успешно. Я создал тестовый файл php с именем index.php в корневом веб-каталоге экземпляра EC2, код выглядит следующим образом:

<?php
  $servername = "aws_rds_endpoint.com";
  $username = "username";
  $password = "password";

  // Create connection
  $conn = new mysqli($servername, $username, $password);

  // Check connection
  if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
  } 
  echo "Connected successfully";
?>

если я наберу «php index.php» в терминале ssh, он покажет «Подключено успешно», но если в веб-браузере я попробовал http в экземпляр EC2, например http://xxxx.us-east-2.computer.amazonaws.com (который является общедоступным DNS EC2), он возвращает сообщение «Ошибка подключения: разрешение отклонено»

Может ли кто-нибудь скажите мне, как решить эту проблему?

0
задан 26 January 2018 в 23:05
2 ответа

Если вы хотите подключиться к AWS RDS MySQL из экземпляра EC2 Linux, вам понадобится идентификатор экземпляра. Кроме того, убедитесь, что вы добавили общедоступный IP-адрес в группу безопасности БД, которая принадлежит RDS. Убедитесь, что ваш идентификатор пользователя имеет правильные разрешения как для экземпляра EC2 Linux, так и для базы данных MySQL - изменение / чтение доступа к расположению MySQL и самой БД.

Затем убедитесь, что вы создали группу безопасности БД для внешнего доступа и ваш пользователь включен в нее. Вы можете сделать это, используя инструкции по следующей ссылке: http://docs.amazonwebservices.com/AmazonRDS/latest/GettingStartedGuide/AuthorizeAccess.html

0
ответ дан 24 November 2019 в 03:14

Я думаю, что на этот вопрос уже дан ответ в другой ветке SO. Но у меня была точно такая же проблема. В моем случае я использовал Centos 8 в качестве экземпляра EC2. Проблема связана с SELinux

sudo setsebool -P httpd_can_network_connect_db=1

Если вы уже можете подключиться с помощью инструмента командной строки mysql; тогда, очевидно, это не проблема с брандмауэром или разрешениями; вероятно SELinux

1
ответ дан 18 September 2020 в 21:06

Теги

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