无法建立与MS SQL Server 2008的连接

时间:2015-06-02 03:42:40

标签: php sql-server sql-server-2008

我一直在尝试建立与SQL Server 2008的连接,但我收到一条返回消息:

  

无法建立连接。数组([0] =>数组([0] =>   08001 [SQLSTATE] => 08001 [1] => -1 [code] => -1 [2] =>   [Microsoft] [SQL Server的ODBC驱动程序11] SQL Server网络   接口:错误查找指定的服务器/实例[xFFFFFFFF]。   [message] => [Microsoft] [SQL Server的ODBC驱动程序11] SQL Server   网络接口:找到指定的服务器/实例时出错   [xFFFFFFFF的]。 )[1] =>数组([0] => HYT00 [SQLSTATE] => HYT00 [1] =>   0 [code] => 0 [2] => [Microsoft] [SQL Server的ODBC驱动程序11]登录   超时已过期[message] => [Microsoft] [用于SQL的ODBC驱动程序11   服务器]登录超时已到期)[2] =>数组([0] => 08001 [SQLSTATE]   => 08001 [1] => -1 [code] => -1 [2] => [Microsoft] [SQL Server的ODBC驱动程序11]发生了与网络相关或特定于实例的错误   同时建立与SQL Server的连接。找不到服务器或   无法访问。检查实例名称是否正确以及SQL Server是否正确   配置为允许远程连接。有关更多信息,请参阅SQL   服务器书籍在线。 [message] => [Microsoft] [用于SQL的ODBC驱动程序11   Server]发生了与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器   无障碍。检查实例名称是否正确以及SQL Server是否正确   配置为允许远程连接。有关更多信息,请参阅SQL   服务器书籍在线。 )

我的PHP代码:

<?php
$serverName = "SERV002\SQLEXPRESS"; //serverName\instanceName
$connectionInfo = array( "Database"=>"YSHSDB", "UID"=>"sa", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

更新:我已经通过在运行SQL服务器的服务器2003上安装xampp lite来解决这个问题,但是,如果Web服务在另一个服务器上运行,我仍然希望能够访问SQL服务器机。

2 个答案:

答案 0 :(得分:1)

这里明显的错误是你的SQL服务器没有运行或者没有配置为允许远程连接(我认为这是SqlExpress的默认设置)

您需要打开Sql Connection Manager并更改TCP连接的设置,以使其可用于远程连接。您可能还有防火墙阻止您的Sql连接。确保端口1433暴露在任何防火墙中。

答案 1 :(得分:0)

打开您的服务器配置管理器 Server Configuration Manager

SQL Server 网络配置下 单击SQLEXPRESS 的协议

右键单击并访问 TCP/IP 的属性

选择IP 地址 标签

现在将所有 TCP 端口配置为您在连接字符串中使用的端口。