[2002] php_network_getaddresses:找不到服务器名或服务不存在

fnatzsnv  于 6个月前  发布在  PHP
关注(0)|答案(1)|浏览(52)

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

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作为这个类似的问题在这里-"PDO exception: php_network_getaddresses: getaddrinfo failed" after changing DNS resolvers, with DB running on AWS
它运行在一些docker容器上。我也重新启动了实际的机器。

为什么它只是随机无法解决该领域在某些点,然后工作正常?

cbjzeqam

cbjzeqam1#

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重现这个问题。

相关问题