Подключитесь к Amazon RDS с помощью PHP - PullRequest
4 голосов
/ 06 марта 2012

Я пытаюсь подключить мой экземпляр RDS с моим файлом подключения PHP.

Это то, что у меня есть в моем файле:

define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'User Name');
define('DB_PASSWORD', 'Password');
define('DB_DATABASE', 'DATABASE');

$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());

Я заменил localhost своей конечной точкой (rds вещь) URL, имя пользователя и пароль с моим пользователем RDS Instance, а также пароль и имя базы данных, которые я установил при создании экземпляра.Но это не похоже на работу.

Есть ли что-то еще, что я должен сделать, о котором я не знаю, или это должно работать?

Ответы [ 7 ]

13 голосов
/ 07 июня 2012

Экземплярам RDS не присвоен статический IP-адрес, вы всегда используете конечную точку для хоста. Например:

database1.jlsdfjhgsdf.us-east-1.rds.amazonaws.com

Если вы подключаетесь к экземпляру с именем пользователя, отличным от учетной записи корневой базы данных, вам необходимо предоставить привилегии пользователя.

Проверьте настройки группы безопасности. Если вы подключаетесь из другого экземпляра EC2 на Amazon, вам нужно присоединить эту группу безопасности. Если вы пытаетесь подключиться из-за пределов AWS, вам потребуется внести в белый список IP-адрес, с которого вы осуществляете доступ.

8 голосов
/ 06 марта 2012

Некоторые идеи:

  • Попробуйте использовать фактический IP-адрес экземпляра, тогда он должен работать.
  • Вы разрешили доступ к вашему экземпляру БД?
  • Возможно, вы захотите взглянуть на Начало работы с Amazon RDS , чтобы правильно настроить экземпляр RDS
4 голосов
/ 10 декабря 2013

Я столкнулся с подобной проблемой при попытке подключить сервер Apache EC2 с помощью PHP к экземпляру RDS MySQL. Как ни странно, я мог установить соединение через CLI - однажды в состоянии выполнения mysql скажет вам, с каким пользователем вы вошли, плюс порт, имя сервера и т. Д. Оказалось, что некоторые образы AMI имеют принудительное применение SELinux - это означает, что сервер apache не может отправлять сетевые запросы, как указали эти господа (http://www.filonov.com/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/)

Другие баллы:

  • Убедитесь, что для вашей RDS DB установлены входящие порты
  • В MySQL убедитесь, что для хоста установлено значение '%', а не для localhost
  • Всегда используйте строку конечной точки для подключения при изменении IP-адреса RDS
1 голос
/ 25 июля 2017

У меня также была проблема соединения между ec2 (сервер apache + php) и RDS (сервер Mysql), когда я следовал учебному пособию по адресу http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html.

. Я решил ее, используя двойные кавычки при указаниизначение соединения, когда в руководстве используется одинарная кавычка.

define('DB_SERVER', "localhost");
define('DB_USERNAME', "User Name");
define('DB_PASSWORD', "Password");
define('DB_DATABASE', "DATABASE");
1 голос
/ 14 декабря 2015

Click here on the Menu (orange).

Просто принимает все входящие соединения.

1 голос
/ 14 ноября 2012

Недавно у меня тоже было много проблем с этим, но я смог это исправить. Я удостоверился, что мои группы безопасности (для RDS и для EC2) разрешили друг другу. Я смог запустить свой скрипт из терминала и подключиться к своей базе данных также из терминала, но я не смог заставить скрипт запустить / подключиться к MySQL из браузера. Оказывается, у меня не установлен mysql-сервер - после того, как я установил его и перезапустил httpd и mysqld, он заработал как чудо.

Эта статья привела меня к установке mysql-сервера, и служба запускается / перезапускается. Надеюсь, поможет! - http://www.rndmr.com/amazon-aws-ec2-easy-web-serverset-up-guide-with-a-mac-and-coda-2-256/

0 голосов
/ 09 декабря 2013

Я пытался подключиться к своему экземпляру БД, используя node-mysql. Я обнаружил, что конечная точка, которую RDS предоставил мне, сделала поиск DNS. Следил за этим и изменил URL на этот. До этого момента я мог подключаться к MySQL только через командную строку. Когда я изменил его на конечную точку после поиска, узел-mysql наконец смог подключиться.

...