在 docker 应用程序启动时(使用 laravel php),对于 1 个请求,与数据库的连接正常。在第一个请求之后,我开始收到此错误。
SQLSTATE[08006] [7] could not send SSL negotiation packet: Resource temporarily unavailable (Connection: pgsql, SQL: (select * from ........)
使用:
我跟踪了这个问题,直到我发现 PDO 实际上没有打开与 PostgreSQL 的连接。我用 iptraf 以及 pg_connect 和 PDO 对其进行了测试。当我们使用 PDO 时,我们会收到上面的错误,但是当我尝试使用 pg_connect 时,我们可以连接甚至进行查询。
所以我的发现是,当使用 iptraf 时
我想作为我的客户添加一些澄清信息,并且在
unattended-upgrades
将我们的 PHP 安装从 PHP 8.2.19
更新为 PHP 8.2.20
之后,我遇到了完全相同的问题
我们得出以下结论
PHP 8.1.x
完全不受此问题的影响。我们创建了一个临时 php 脚本来连接到 Digital Ocean PostgreSQL 数据库,PHP 8.1
已成功连接PHP 8.2.20
上的 Ubuntu 22.04 LTS
受此问题影响。上面描述的相同脚本不适用于 PHP 8.2.20
PHP 8.2.20
上未复制该问题php8.2 artisan db
并成功将 shell 放入 PostgreSQLPHP 8.2.20
内发生了 SSL 更改,但不知道这些是否相关