【问题标题】:Unable to connect in SQL Management Studio无法在 SQL Management Studio 中连接
【发布时间】:2013-10-10 03:01:35
【问题描述】:

我的应用程序从无法连接到数据库的客户端机器上抛出错误。因此,作为测试,我在同一台客户端计算机上使用 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. 从客户端到服务器的跟踪仅显示一跳,即直接到服务器计算机 IP。
    1. 我可以使用主机名从服务器计算机远程访问客户端计算机,反之亦然。

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

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

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

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

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

【问题讨论】:

  • 我仔细检查了服务器和客户端机器的主机文件上没有任何条目,他们都注释掉了。
  • 当你 ping 你得到什么 ip?这个ip和机器ip一样吗?另外我想指出这不是一个编程问题,而是一个网络问题
  • 当我 ping 服务器名称时,我得到了正确的服务器 IP 地址,我将它放在程序下,看看是否有任何开发人员之前遇到过类似的情况。

标签: c# sql-server networking


【解决方案1】:

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

【讨论】:

  • 嗯,当我添加这个时,它可以工作。但是,我的一部分仍然对此感到不安,哈哈....我有另一台具有精确设置的机器,主机文件不包含任何内容,并且该机器可以工作...哦,我会继续研究,直到找到更好的解决方案当前的。谢谢你,尼克。
  • "8. 服务器和客户端都使用静态 IP 设置,在 IPV4 属性下没有 DNS 服务器。" - 如果没有 DNS 服务器,则不能使用名称)可能 DNS 会自动生成。尝试比较 DNS 地址
  • 不喜欢“\”数据库名称中的这个符号。不会造成任何问题吗?
  • 您指的是 LNKLABARIAL8\XMARK? \ 只是分隔实例和数据库主机名。
  • "我可以使用服务器的 IP 地址或计算机名 ping 服务器。"您说“ping”能够解析 WITHOUT 显式 /etc/hosts 条目。所以我猜可能问题出在 DNS 后缀上(例如“mycompany.com”与“mylan.local”)?如果是这样,也许它可以与“ServerComputerName.fqdn.com\InstanceName”一起使用?
【解决方案2】:

1) 确保您已启用 TCP/IP(配置管理器)并重新启动 MSSQL

2) 确保您可以通过主机名和 IP “ping”

3) 确保 MSSQL 浏览器正在运行

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

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

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

链接:

'希望有帮助!

【讨论】:

    【解决方案3】:

    我注意到了这一点:

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

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

    【讨论】:

    • 我同意你所说的,并以某种方式在这个客户端上判断解决方案,它无法正确解析名称....奇怪的是我有另一个客户端,它工作得很好具有确切的 ipconfig 设置和跟踪路由。
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多