【问题标题】:Remote SQL Server 2008 R2 connection error远程 SQL Server 2008 R2 连接错误
【发布时间】:2012-07-26 10:53:23
【问题描述】:

我将首先尝试解释我遇到的问题。我有一个在 Windows 2003 R2 SP2 上运行的 SQL Server 2008 R2。 SQL Server 配置为接受端口 1433 上的远程连接。在我配置了 WAMP 服务器的 Windows 7 机器上,我使用 PHP 脚本连接到数据库并检索一些数据。这很完美。

现在我试着把它移到网上。将整个应用程序移到具有 PHP 的 sqlsrv 驱动程序的托管服务器上,我收到此错误。

Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10060 [code] => 10060 [2] => [Microsoft][SQL Server Native Client 10.0]TCP Provider:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立 连接失败,因为连接的主机没有响应。 [消息] => [Microsoft][SQL Server Native Client 10.0]TCP 提供者:A 连接尝试失败,因为连接方没有正确 一段时间后响应,或建立连接失败 因为连接的主机没有响应。 ) [1] => 数组 ( [0] => HYT00 [SQLSTATE] => HYT00 [1] => 0 [代码] => 0 [2] => [Microsoft][SQL 服务器 Native Client 10.0]登录超时已过期 [消息] => [Microsoft][SQL Server Native Client 10.0]登录超时)[2] => 数组 ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10060 [代码] => 10060 [2] => [Microsoft][SQL Server Native Client 10.0]A 发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。未找到服务器 无障碍。检查实例名称是否正确以及 SQL Server 是否正确 配置为允许远程连接。有关详细信息,请参阅 SQL 服务器联机丛书。 [消息] => [Microsoft][SQL Server Native Client 10.0]建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到服务器 无障碍。检查实例名称是否正确以及 SQL Server 是否正确 配置为允许远程连接。有关详细信息,请参阅 SQL 服务器联机丛书。 ))

我很困惑为什么会有不同的结果。我还应该提到托管服务器也在 Windows 上运行。任何人都知道为什么我可能无法从某个服务器连接?任何答案表示赞赏。谢谢!

Cosmin


谢谢大家的回答。我与我的主机提供商讨论过他们不允许连接。

“使用我们构建您网站的共享主机计划,您将无法通过该站点远程连接到第三方或远程数据库。此外,我们共享主机计划中 MS SQL 数据库的最大大小为200 MB,无法更改。”

我对 SQL 很陌生。我考虑过生成一个包含所有记录的 xml 并使用 ftp 自动更新它,但由于用户应该只允许在登录后查看他们的数据库部分,所以我不确定这是否安全。

有谁知道如何在网站上显示来自我的 SQL Server 的数据?

【问题讨论】:

  • 您的 PHP 应用程序是否与数据库服务器位于同一台服务器中?从您的帖子中不清楚是否是这种情况......即您的 PHP 应用程序在哪里?它连接的数据库在哪里?

标签: sql-server-2008-r2 remote-connection


【解决方案1】:

首先要做的是建立一个良好的连接:创建一个具有适当 odbc 连接的 udl 文件。最简单的方法是打开记事本并创建一个空文件,然后将 .txt 重命名为 .udl 并双击。 UDL 文件经常被误解。它们只是一个格式化的字符串文本文件,它为数据库驱动程序提供足够的信息以建立连接并让数据库服务做出回应。请先检查非 php 驱动程序。

确定端口 1433 是否打开以及 utp 1434 和任何实例端口。这些通常被您的防火墙阻止。可以通过关闭防火墙来测试

HTH

【讨论】:

    【解决方案2】:

    它是专用服务器吗? 托管服务通常会限制从共享托管到本地环境的允许连接。请与您的主机提供商确认他们是否允许从他们托管的应用程序进行远程连接。

    第二件事。您确定您的服务器具有从本地网络外部可见的端口 1433 吗?您的机器可以访问它的事实并不意味着它可以从 Internet 访问。

    【讨论】:

    • 好的,我会和他们核实一下。而且我确信端口 1433 是可见的。我与 Sql Server 不在同一个网络上,我还通过 Internet 使用开放端口检查工具进行了检查。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多