3

我的应用程序从无法连接到数据库的客户端机器上抛出错误。因此,作为测试,我在同一台客户端计算机上使用 SQL Management Studio 2008 尝试连接到数据库,我发现如果我使用 IP\InstanceName 则可以连接,但如果我使用 ServerComputerName\InstanceName 则无法连接. 我已经验证了以下内容:

  1. 服务器与客户端具有相同的网关和子网掩码。
  2. 我可以使用服务器的 IP 地址或计算机名 ping 服务器。
  3. 服务器或客户端计算机上没有防火墙。
  4. 验证服务器 SQL 浏览器服务是否正在运行。
  5. 验证服务器设置为允许远程连接。
  6. 验证服务器 TCP/IP 已通过 SQL SErver 配置管理器启用。
  7. 我可以使用 ServerComputerName\InstanceName 从不同的客户端计算机进行连接
  8. 服务器和客户端都使用静态 IP 设置,在 IPV4 属性下没有 DNS 服务器。
  9. 从客户端到服务器的 Tracert 仅显示一跳,即直接到服务器机器 IP。
    1. 我可以使用主机名从服务器计算机远程访问客户端计算机,反之亦然。

然后我转到服务器机器并使用 LNKLAB8\Xmark 连接(LNKLAB8 是主机名,Xmark 是我的实例名),我连接成功。但是,当我运行命令 SELECT @@SERVERNAME 时,我得到的结果是 LNKLABARIAL8\XMARK

这让我感到困惑,因为如果我按照下面的屏幕截图右键单击数据库属性,它会显示 LNKLAB8/Xmark .. 我是疯了还是发生了什么奇怪的事情?在采取了我所采取的步骤之后,您对如何让客户端计算机使用服务器主机名而不是服务器 IP 地址连接到数据库有什么建议吗?

我在这个问题上有点碰壁,我不确定我是面临网络相关问题还是数据库设置问题。

编辑:当我尝试使用主机名连接到服务器数据库时,我会得到以下信息:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

在此处输入图像描述

4

3 回答 3

2

尝试将服务器 IP 和名称添加到 c:\WINDOWS\system32\drivers\etc\hosts

于 2013-10-09T19:01:35.870 回答
2

1)确保您已启用 TCP/IP(配置管理器),并重新启动 MSSQL <= 听起来您已经这样做了。

2)确保你可以通过主机名和 IP “ping” <=听起来你也这样做了

3) 确保 MSSQL Browser 正在运行

4) 如果您使用的是 Windows 身份验证(与 SQL Mixed 相比),请确保您可以对远程服务器进行身份验证:

net use \\remote-server /user:<name> <password>

5) 如果一切都失败了,您可能需要考虑在客户端或服务器中的一个/两个上重新安装 MSSQL 相关组件(例如,MDAC)

链接:

'希望有帮助!

于 2013-10-09T18:55:19.617 回答
1

我注意到了这一点:

8:服务器和客户端都使用静态 IP 设置,在 IPV4 属性下没有 DNS 服务器。

那么,名称解析是如何发生的呢?赢了?网络BIOS?Sql Server 可能不喜欢那样。尝试检查您的 DNS 服务器是否具有适用于您的 Sql Server 系统的适当条目,并且事情可能会更好。

于 2013-10-09T19:00:24.453 回答