Я знаю, что на сайте есть и другие подобные вопросы, но мне не удалось найти решения.
У меня настроен экземпляр RDS. Мы запускаем наш сайт на экземпляре EC2.
Я знаю MySQL
работает на экземпляре EC2, потому что наш текущий MySQL
база данных работает на другом сервере, отличном от RDS, и все работает нормально.
Я могу подключиться к экземпляру RDS через MySQL
workbench (я одобрил свой публичный IP-адрес для подключения).
Я могу подключиться к экземпляру RDS через phpMyAdmin
, который установлен на сервере EC2.
Однако я не могу подключиться к экземпляру RDS с помощью PHP / MySQLi.
DEFINE ('DB_USER', '**user**');
DEFINE ('DB_PASSWORD', '**pass**');
DEFINE ('DB_HOST', '*************.rds.amazonaws.com');
if($dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD)){
//DB connected, do nothing
}
else {
echo 'Connection error';
echo mysqli_error();
exit();
}
Я не получаю никаких сообщений об ошибках, ничего. Он просто повторяет "Ошибка подключения".
У меня есть экземпляр EC2 и RDS, совместно использующие группу безопасности (хотя я могу редактировать только правила для входящих, а не исходящих, это странно?), И разрешен общедоступный эластичный IP-адрес EC2 в настройках безопасности RDS.
Я потерялся!
Попробуйте следующее:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
Заменить localhost
, mysql_user
и mysql_password
с вашими учетными данными.
ИЛИ
//conection:
mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));