mysqli_connect():php_network_getaddresses:getaddrinfo失败:名称或服


mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known

im在一个主要使用数据库的网站上工作。问题是,正在获取以下错误:mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known我想不出该怎么修。我已经检查了连接,似乎没问题。

function connect($hostname, $username, $password, $database)
{
    $conid = mysqli_connect($hostname, $username, $password, TRUE);

    if($conid == FALSE)
    {
        if(DEBUG == TRUE)
        {
            show_error("MySQL Connection using `$hostname`, `$username`, `$password` was refused");
        }
        return;
    }
    else
    {
        $dbid = mysqli_select_db($database, $conid);
        if($dbid == FALSE)
        {
            if(DEBUG == TRUE)
            {
                show_error("MySQL could not connect to database `$database`");
            }
            return;
        }
        else
        {
            self::$connections[] = $conid;
            self::$connection    = $conid;
        }
    }
}

该代码是在2010年编写的,然后不知何故它起了作用。有可能修复吗?

这是服务器托管问题。你必须和主持人核实一下。

你也可以在这个链接上阅读更多提示:http://albertech.net/2011/05/fix-php_network_getaddresses-getaddrinfo-failed-name-or-service-not-known/

您的PHP服务器已升级,但您的主机不支持它。

我也遇到过类似的问题,我的问题是通过检查和解析DNS解析来解决的(在我们的案例中,cagefs中的使用与核心系统有不同的/etc/hosts)

我自己刚刚在两个工作的PHP 7.1、Apache 2.4&mariaDB 10.2/10.4服务器。

对我来说,问题是由使用"http://1.2.3.4/"作为数据库主机-这将导致PHP返回此错误mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known。对我来说,这当然是一些虚假的错误,因为他们都单独托管相同的网站和数据库,所以没有理由不工作。

主机变量应仅为IP地址"1.2.3.4"或域/子域(不包括协议)"example.com"或"subdomain.example.com"-现在可以正确连接。