所以我偶尔会得到以下错误:
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容器上。我也重新启动了实际的机器。
为什么它只是随机无法解决该领域在某些点,然后工作正常?
1条答案
按热度按时间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
重现这个问题。