Назад | Перейти на главную страницу

Проблема с подключением PDO к AWS RDS

У нас есть веб-сайт, написанный на PHP, размещенный на экземпляре AWS EC2, который обращается к базе данных AWS RDS. При высоком трафике на сайте некоторые пользователи сталкиваются с ошибкой 503 на страницах, и мы можем видеть эти ошибки в нашем журнале Apache:

Uncaught Exception: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on ... 

Мое первоначальное значение - слишком много подключений из PHP, что превышает максимальный предел RDS. Однако это то, что я получил от RDS.

show variables like '%conn%';

connect_timeout         10
max_connect_errors      100
max_connections         2486
max_user_connections    0

И мониторинг RDS говорит мне, что фактических подключений к БД было меньше, чем 300.

Я что-нибудь здесь пропускаю?

Это код, который устанавливает соединение, если нужно:

$dbh = new PDO('mysql:host='.$db_host.';dbname='.$wp_db_name, $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;

У меня слабо похожая проблема, когда я могу подключиться с помощью команды mysql в той же группе VPC / Security, но не с помощью PDO. Оказалось, что я не помещал host = в DSN перед IP.