SQL Server连接字符串 - 使用点号(".")、"(local)"或"(localdb)"?

46

我最近需要在两台笔记本电脑上安装SQL Server并还原数据库,第一台电脑花了我几天时间才弄明白,第二台仍然让我苦苦挣扎。

在两台电脑上都出现了以下错误:

  

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

我仍然在第二台电脑上遇到了这个问题。

我进行了大量的研究,并按照StackOverflow和其他网站列出的所有步骤进行了操作,例如确保SQL Server正在运行TCP和Named Pipes,确保SQL Server允许远程连接以及所有其他我能找到的故障排除步骤。

最终,我发现我在第一台笔记本电脑上只是输入连接字符串时输错了。我尝试使用像(localdb)\MSSQLSERVER2012这样的内容,因为很多网站都这么说。当我改为使用.\MSSQLSERVER2012后,它开始运转了。我以为它们都指向同一个地方,但显然不是。

我真的想避免再次遇到这个问题,并找出如何设置我的第二台笔记本电脑。我应该使用.\SQLSERVER2012(local)\SQLSERVER2012(localdb)\SQLSERVER2012等等?有没有一种简单的方法可以使用像SqlLocalDb这样的命令行工具来找出这个问题?这最初是如何设置的?

1个回答

81

(本地)以及YourMachineName都是等效的,指的是您自己的机器。

(LocalDB)\instance仅适用于SQL Server 2012 LocalDB,它是SQL Server 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配置管理器(从开始菜单中启动),你会看到:

enter image description here

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

3
我想在你的回答中补充一点,就是LocalDB必须用括号括起来。 - Andrew Carmichael
3
实例名称无法更改,但可以更改其TCP/IP端口,以便(.)或(local)等仍指向该实例。有关详细信息,请参阅此答案 https://dev59.com/ymQm5IYBdhLWcg3w2SD3#17281278 - dizarter
"(LocalDB)\instance 是仅限于 SQL Server 2012 Express 版本的。" 没有 Express Edition 是完整安装,LocalDB 是一个独立的精简版。 - Charlieface

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接