PDOException:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo failed:名称或服务未知

时间:2017-03-21 11:39:43

标签: mysql amazon-web-services nginx pdo laravel-5

我有一个EC2实例,其中托管了Laravel 5应用程序。数据库是Amazon Aurora RDS。该应用程序运行良好数月。但今天早上API无法访问。除了对使用DB的API的任何调用之外,其他所有工作都是有效的。其他电话也很好。该错误记录为:

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

但我可以使用相同的确切细节从MySQL Workbench等连接到同一个数据库,同时在应用程序文件中没有任何变化。

我重新启动了Nginx,问题立即得到解决,一切恢复正常。

我仍然不知道发生了什么。任何人都可以对此进行教育,因为我不确定问题是否可以随机再次出现以及如何阻止这种情况发生。

5 个答案:

答案 0 :(得分:4)

AWS EC2与Ubuntu 14.04上的问题相同。昨晚无人值守升级:

2017-03-21 03:42:53,570 INFO将升级的软件包:libc-bin libc-dev-bin libc6 libc6-dev libfreetype6 libfreetype6-dev locales multiarch-support

刚刚在ubuntu bug跟踪器上创建了一个案例:https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1674733

请点击"此错误影响我"优先考虑ubuntu方面的修复。

答案 1 :(得分:2)

他们发布了修复方案。请参阅此链接以及发行版底部的说明。 https://www.ubuntu.com/usn/usn-3239-2/

答案 2 :(得分:1)

我遇到了完全相同的问题。 Ubuntu 16.04,PHP和Drupal - 今天早上刚刚开始。我整个早上一直在重新加载apache,暂时解决它:

service apache2 reload

但是,这并没有永久性地修复它,它又回来了几次。

答案 3 :(得分:1)

截至3月20日,网络上的许多Ubuntu用户突然在其应用程序中弹出DNS解析问题,因为Canonical(Ubuntu的维护人员)推出了一个糟糕的更新,在几个小时的正常运行时间后破坏了DNS解析。这是报告和分类问题的错误报告:

https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1674532

这可能导致CMS无法更新/安装插件/安装主题,连接到外部API的失败和/或类似于以下内容的错误消息:

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed:    No address associated with hostname

Could not resolve host: downloads.wordpress.org

cURL error 6: Could not resolve host: example.com in....

幸运的是,Canonical已经能够解决这个问题,但是受影响的系统必须更新才能获得修复。要做到这一点,你需要DNS工作,所以如果它当前已经关闭,请首先重启你的Droplet。一旦DNS解析正常工作,请运行:

sudo apt-get update
sudo apt-get upgrade

然后你可以检查你的版本,以确保你有正确的版本。这可以通过以下方式完成:

# sudo dpkg -l | grep "GNU C Library" | awk '{print $3}'

如果您使用的是Ubuntu 16.X,则应该看到类似于以下内容的输出:

# sudo dpkg -l | grep "GNU C Library" | awk '{print $3}'
2.23-0ubuntu7
2.23-0ubuntu7
2.23-0ubuntu7

如果您使用的是Ubuntu 14.X,则应该看到类似于以下内容的输出:

# sudo dpkg -l | grep "GNU C Library" | awk '{print $3}'
2.19-0ubuntu6.11
2.19-0ubuntu6.11

如果您看到这些软件包的旧版本,则需要按照之前的说明进行升级,以避免此问题。

答案 4 :(得分:0)

我们今天刚刚经历过同样的事情。我们在带有PHP 7.0的Ubuntu 16.04机箱上运行Drupal 7,在EC2中连接到RDS实例的nginx。

我们确实启用了无人值守升级,并且今天早上升级了以下内容:

  

开始日期:2017-03-21 06:13:56   命令行:/ usr / bin / unattended-upgrade   升级:libc6:amd64(2.23-0ubuntu3,2.23-0ubuntu6),locales:amd64(2.23-0ubuntu3,2.23-0ubuntu6),libc-bin:amd64(2.23-0ubuntu3,2.23-0ubuntu6),multiarch-support:amd64(2.23 -0ubuntu3,2.23-0ubuntu6),libfreetype6:amd64(2.6.1-0.1ubuntu2,2.6.1-0.1ubuntu2.1)   结束日期:2017-03-21 06:14:00

解决方案是重启nginx和PHP:

sudo service nginx restart
sudo service php7.0-fpm restart
相关问题