【问题标题】:connect to a mapped SQL server through PHP通过 PHP 连接到映射的 SQL 服务器
【发布时间】:2016-06-01 15:25:21
【问题描述】:

我正在使用 2008 Server R2 平台上已经构建的数据库,我想创建一个应用程序来查询所述数据库。

我的所有经验都是本地安装 MySQL,但是这个数据库是 MS SQL server 10.50。

我的问题是, SQL 服务器是一个映射到 Web 服务器的驱动器,我已经安装了所有正确的 PHP 驱动程序和 SQLsrv 扩展,并且正在读取正确的 phpinfo,一切正常,但我对如何连接到 SQL 服务器感到困惑.澄清一下,

我的应用程序位于 Web 服务器上,我想通过 php 连接到映射到 Web 服务器的 SQL 服务器。我正在使用 Windows 身份验证。

目前我写的连接PHP是这样的

<?php
$serverName = "SmartCM.IMG"; 


$connectionInfo = array( "Database"=>"SMARTCM");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "I tried, but it didn't work out... sorry.<br /><br><br><br>";
     die( print_r( sqlsrv_errors(), true));
}
?>

这是我读到的错误

Array ( 
    [0] => Array ( 
        [0] => 08001 
        [SQLSTATE] => 08001 
        [1] => 53 
        [code] => 53 
        [2] => [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. 
        [message] => [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. ) 
    [1] => Array ( 
        [0] => HYT00 
        [SQLSTATE] => HYT00 
        [1] => 0 
        [code] => 0 
        [2] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired 
        [message] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired ) 
    [2] => Array ( 
        [0] => 08001 
        [SQLSTATE] => 08001 
        [1] => 53 
        [code] => 53 
        [2] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. 
        [message] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. ) 
    )

【问题讨论】:

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


【解决方案1】:

命名管道提供程序:无法打开与 SQL Server 的连接

您需要启用命名管道

打开 SQL 配置管理器 -> SQL Server 网络配置 -> 协议 -> 命名管道 -> 右键单击​​ -> 重新启动

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

使用正确的服务器和实例名称(您需要确定两者),例如PC\SQLEXPRESS

同时检查 TCP/IP 连接是否启用

打开 SQL 配置管理器 -> SQL Server 网络配置 -> 协议 -> TCP/IP -> 右键单击​​ -> 重新启动

检查防火墙是否阻止了端口 1433 上的连接。

【讨论】:

  • 很好的信息,谢谢!我能够打开命名管道。我仍然无法获得实际连接..我已经验证实例名称应该是 MSSQLSERVER,但是我对服务器名称感到困惑...我知道通常这应该是 localhost 或 IP,但是因为我'我想连接到一个映射的驱动器我不确定......我什至不确定它是否可能。我已经尝试连接到驱动器本身“\\WIND2k8R2-SQL”,它的名称为“SmartCM.IMG”。我也试过IP,但我认为这行不通,因为两台机器共享一个外部IP。
  • 尝试 machine_name_of_pc_on_which_sql_is_running\SmartCM.IMG 例如我的电脑名称是“mypc”,我运行名为“test”的实例。我应该连接的名称是“mypc\test”。
  • 似乎我的 IP 地址有误,我现在已经建立了连接。谢谢!
猜你喜欢
  • 2011-05-21
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2018-01-09
  • 1970-01-01
相关资源
最近更新 更多