具有正确的参数,但仍然:无法连接到数据库[php_network_getaddresses:getaddrinfo失败:未知此类主机。]

具有正确的参数,但仍然:无法连接到数据库[php_network_getaddresses:getaddrinfo失败:未知此类主机。],php,sql-server,iis,mysqli,Php,Sql Server,Iis,Mysqli,我已经检查了一些类似我的情况,但没有找到任何可以解决我问题的方法。我的IIS web服务器上有一个名为“FracFocusRegistry”的数据库,我正试图使用以下参数连接到该数据库 $server = "scg-1441-6\FRACSQL"; $database = "FracFocusRegistry"; $user = "root"; $password = ""; $conn = new mysqli($server, $user, $password, $database);

我已经检查了一些类似我的情况,但没有找到任何可以解决我问题的方法。我的IIS web服务器上有一个名为“FracFocusRegistry”的数据库,我正试图使用以下参数连接到该数据库

$server = "scg-1441-6\FRACSQL";
$database = "FracFocusRegistry";
$user = "root";
$password = "";

$conn = new mysqli($server, $user, $password, $database);

if($conn->connect_errno > 0){
    die('Unable to connect to database [' . $conn->connect_error . ']');
}   
我收到以下错误“无法连接到数据库[php_network_getaddresses:getaddrinfo失败:不知道这样的主机。]”


我检查了多次,服务器名称实际上是正确的。我发现其他人也有类似的问题,打开了防火墙端口,并在SQL manager中更改了设置,但仍然没有任何效果。任何帮助都将不胜感激

无论出于何种原因,它都无法确定什么是
scg-1441-6\FRACSQL
。主机(PHP,而不是数据库)需要能够将这个名称解析为一个地址,所以首先检查主机文件。如果数据库位于同一台计算机上,您可以尝试将名称更改为
localhost
,甚至
127.0.0.1
(或者如果数据库位于另一台主机上,则更改具有该数据库的计算机的IP地址),以查看其是否有效。

这是不正确的:

 $server = "scg-1441-6\FRACSQL";
mysqli只需要服务器的dns主机名/IP。它也不支持域,因此域\主机根本无法工作。MySQL实际上是在寻找一个主机名,
s
c
<代码>\,
F
等。。。作为主机名

试一试


仅限。

也许您应该将地址改为名称?是您的数据库服务器mysql还是mssql。如果是后者,您是否正在尝试使用mysqli连接到mssql服务器?@frz3993它是mssql。我把它改成了下面帖子中的主机,现在我得到了一个单独的错误。
mysqli
顾名思义,是针对mysql服务器的。您可以将PHP PDO扩展与可以连接到mssql的驱动程序一起使用。你可以参考这个问题。好的,谢谢。因此,我只使用了主机名,但现在它返回“无法连接到数据库[无法建立连接,因为目标计算机主动拒绝了它。]”有什么东西阻止了对mysql端口的访问,或者mysql不在端口3306上,或者防火墙阻止了访问。
$server = "scg-1441-6";