我一直在尝试建立与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服务器机。
答案 0 :(得分:1)
这里明显的错误是你的SQL服务器没有运行或者没有配置为允许远程连接(我认为这是SqlExpress的默认设置)
您需要打开Sql Connection Manager并更改TCP连接的设置,以使其可用于远程连接。您可能还有防火墙阻止您的Sql连接。确保端口1433暴露在任何防火墙中。
答案 1 :(得分:0)
打开您的服务器配置管理器 Server Configuration Manager
SQL Server 网络配置下 单击SQLEXPRESS 的协议
右键单击并访问 TCP/IP 的属性
选择IP 地址 标签
现在将所有 TCP 端口配置为您在连接字符串中使用的端口。