【问题标题】:SQL Server Connection Strings - dot(".") or "(local)" or "(localdb)"SQL Server 连接字符串 - dot(".") 或 "(local)" 或 "(localdb)"
【发布时间】:2013-11-26 12:47:11
【问题描述】:

我最近不得不安装 SQL Server 并将数据库恢复到两台笔记本电脑,第一台花了我几天时间才弄清楚,第二台我还在苦苦挣扎。

我在这里都遇到了这个错误:

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

我仍然在第二个得到它。

我进行了大量研究,并遵循了 StackOverflow 和其他站点上列出的所有步骤,例如确保 SQL Server 运行 TCP 和命名管道、确保 SQL Server 允许远程连接,以及我能找到的所有其他故障排除步骤。

最后我发现我只是在第一台笔记本电脑上输入了错误的连接字符串。我试图使用(localdb)\MSSQLSERVER2012(或类似的东西),因为它在很多网站上都这么说。当我使用.\MSSQLSERVER2012 时它开始工作。我以为他们都会指向同一个地方,但显然不是。

我真的很想再次避免这个问题,并弄清楚如何设置我的第二台笔记本电脑。我如何知道我是否应该使用.\SQLSERVER2012(local)\SQLSERVER2012(localdb)\SQLSERVER2012 等?有没有一种简单的方法可以使用像SqlLocalDb 这样的命令行工具来解决这个问题?这首先是如何设置的?

【问题讨论】:

    标签: database sql-server-2008 sql-server-2008-r2 sql-server-2012 connection-string


    【解决方案1】:

    .(local)YourMachineName都是等价的,指的是你自己的机器。

    (LocalDB)\instance 仅适用于 SQL Server 2012 Express

    其他部分取决于您的安装方式 - 如果您使用 实例名称 进行安装 - 那么您需要拼出该实例名称(默认情况下为 SQL Server Express使用SQLEXPRESS 实例名称,而其他版本的 SQL Server 将尝试使用没有任何特殊名称的默认实例。

    因此,对于在本地计算机上安装了所有默认选项的“普通”SQL Server,请使用

    .    or   (local)     or          YourMachineName
    

    对于使用所有默认设置安装的 SQL Server Express,请使用

    .\SQLEXPRESS    or   (local)\SQLEXPRESS     or          YourMachineName\SQLEXPRESS
    

    如果您查看 SQL Server 配置管理器(从开始菜单启动它),您会看到:

    如果 SQL Server 条目显示为 (MSSQLSERVER),那么这就是默认实例(没有任何名称) - 否则您会在括号中看到实例名称

    【讨论】:

    • 我想添加到您的答案中的唯一想法是 LocalDB 必须放在括号中。
    • 无法更改实例名称,但可以更改其 TCP/IP 端口,因此 (.) 或 (local) 等仍指向该实例。详情看这个回答stackoverflow.com/a/17281278/1184296
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多