веб-сервисы Amazon — нет такого файла или каталога, подключающегося к RDS через EC2 с переполнением стека

Я настроил RDS и EC2 на веб-сервисах Amazon. RDS находится в одной группе безопасности, а EC2 — в другой. Группа безопасности EC2 принимает трафик http, https и ssh (хотя я пытался настроить его для всего трафика) из любого места, в то время как группа безопасности RDS принимает весь входящий трафик от себя и от группы безопасности EC2.

У меня есть несколько файлов php на EC2, с

$server = $_SERVER['DB_SERVER'];
$username = $_SERVER['DB_USERNAME'];
$password = $_SERVER['DB_PASSWORD'];
$database = $_SERVER['DB_DATABASE'];

$connection = new mysqli($server, $username, $password, $database);
echo $connection->connect_error;

где DB_SERVER и т. д. перечислены в dbinfo.inc в /var/www/inc/dbinfo.inc согласно этому руководству: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html

Это дает ответ «Нет такого файла или каталога», который мне говорят, потому что файл mysql.sock не найден.

В /etc/my.cnf у меня есть:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
*bunch of comments*

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

но mysql.sock не существует в / var / lib / mysql (или / var / lib / mysql / mysql)

Бег

find . mysql.sock

а также

find . mysqld.sock

оба дают «Нет такого файла или каталога»

Спасибо за вашу помощь

1

Решение

Я столкнулся с той же проблемой, когда пытался развернуть php заявка на aws ec2
и размещение базы данных на rds

Прежде всего, не следуйте документации Amazon для подключения rds база данных.
причина $_server['anything'] возвращает пустое значение Так
$server = $_SERVER['DB_SERVER']; здесь $server содержит только пустое значение

Вместо этого используйте следующий код:

<?php
$dbhost = 'your rds instance endpoint';
$dbport = 'port numberdefault 3306 ';
$dbname = 'name of data base';
$charset = 'utf8' ;
$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset=   {$charset}";
$username = 'username ';
$password = 'password';

try {

$pdo = new PDO($dsn, $username, $password);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "your sql query";

$pdo->exec($sql);
echo "successfully connected";
}
catch(PDOException $e)
{
t;
echo "Connection failed: <br>  ". $e->getMessage();

}

$conn = null;

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]