PDO 与 AWS RDS 连接问题

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

RDS DB 连接数

我是否遗漏了什么?

如果有用的话,这是建立连接的代码:

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

答案1

我遇到了一个类似的问题,我可以使用同一 VPC/安全组中的 mysql 命令进行连接,但不能使用 PDO。原来我没有在 IP 之前的 DSN 中输入 host=。

相关内容