偶发性 PDOException [2002] php_network_getaddresses:getaddrinfo 失败:名称或服务未知

Sporadic PDOException [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

提问人:Horse 提问时间:8/11/2017 更新时间:8/11/2017 访问量:1227

问:

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

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

评论

0赞 rickdenhaan 8/11/2017
听起来 name.plus.com 主机名的 DNS 查找存在问题,可能是在您的 ISP 上。您是否尝试过查看如果连接到 IP 地址而不是主机名,问题是否已解决?
0赞 YvesLeBorg 8/11/2017
您可以在 /etc/resolv.conf 中添加一个额外的公共名称服务器(Google : 8.8.8.8)。当然,这并不能解决问题,只需绕过它,但是在您的ISP弄清楚这一点之前,您可以继续测试/其他任何事情。
0赞 4wk_ 1/30/2023
我随机遇到了同样的问题,而且我确实有 Google DNS 服务器 8.8.8.8 在我的 ;而 my 实际上是一个指向 127.0.0.1 的域resolv.confDB_SERVER/etc/hosts

答: 暂无答案