【问题标题】:PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not knownPDOException:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:名称或服务未知
【发布时间】:2017-08-13 01:23:10
【问题描述】:

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

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

但我可以使用相同的详细信息从 MySQL Workbench 等连接到同一个数据库,同时应用文件中没有任何变化。

我重启了Nginx,问题立马解决,一切恢复正常。

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

【问题讨论】:

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


    【解决方案1】:

    使用 Ubuntu 14.04 在 AWS EC2 上出现同样的问题。昨晚无人值守升级:

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

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

    请点击“此错误影响我”以优先解决 ubuntu 方面的问题。

    【讨论】:

    • 谢谢。令人担忧的是,该错误严重影响了一些用户。
    • 这是我遇到的同样问题。谢谢!
    【解决方案2】:

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

    服务 apache2 重新加载

    但这并不能永久修复它,而且它又回来了几次。

    【讨论】:

    • 重启整个服务器?
    【解决方案3】:

    我们今天也遇到了同样的情况。我们在带有 PHP 7.0 的 Ubuntu 16.04 机器上运行 Drupal 7,EC2 中的 nginx 连接到 RDS 实例。

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

    开始日期: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
    

    【讨论】:

      【解决方案4】:

      他们已经解决了问题。请参阅此链接以及您的发行版底部的说明。 https://www.ubuntu.com/usn/usn-3239-2/

      【讨论】:

        【解决方案5】:

        截至 3 月 20 日,由于 Canonical(Ubuntu 的维护者)推出的错误更新导致网络上的许多 Ubuntu 用户突然在他们的应用程序中弹出 DNS 解析问题,该更新在几个小时的正常运行时间后中断了 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
        

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

        【讨论】:

          猜你喜欢
          • 2015-07-22
          • 2020-03-28
          • 2017-06-26
          • 2019-01-14
          • 2023-04-02
          • 2017-02-21
          • 2013-12-02
          • 2016-02-07
          • 1970-01-01
          相关资源
          最近更新 更多