零星 PDOException [2002] php_network_getaddresses:getaddrinfo 失败:名称或服务未知

问题描述 投票:0回答:1

所以我偶尔会遇到以下错误:

Type: PDOException
Code: 2002
Message: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
File: /var/www/html/system/db.php
Line: 71

没有特定事件后随机开始。我没有更改与数据库连接等相关的任何内容。我会提出一些请求,它会正常工作,然后会得到几秒钟/分钟,然后它将再次恢复工作。

$this->connection = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME, DB_USER, DB_PASS);

我的主机类似如下。它是我的 ISP 的子域,应该没有任何区别。

define("DB_SERVER", "name.plus.com:3306");

机器是自托管的,所以没有AWS作为类似的问题 - 更改DNS解析器后“PDO异常:php_network_getaddresses:getaddrinfo失败”,数据库在AWS上运行

它运行在一些 docker 容器上。我也重新启动了实际机器。

为什么它会随机地在某些点无法解析该域,然后就可以正常工作?

php docker pdo dns
1个回答
0
投票

6 年后,此信息可能与您不再相关,但我仍然想在这里留下我最近的发现作为答案。

我刚刚使用 docker compose 进行最新的 roundcube 设置时遇到了这个问题。每约 10 个请求都会返回 500

getaddrinfo failed

经过一些调试后,我从

roundcube/roundcubemail:1.6.5-fpm-alpine
切换到
roundcube/roundcubemail:1.6.5-fpm
,问题就消失了。我认为 PHP/PDO 与 Alpine Linux 结合时存在一个错误,导致了这种行为。请注意,我无法使用
nslookup
重现该问题。

© www.soinside.com 2019 - 2024. All rights reserved.