【问题标题】:Can't connect to local SQL Server Express无法连接到本地 SQL Server Express
【发布时间】:2021-08-01 17:33:39
【问题描述】:

我已从 AzureDb 切换到我的项目的本地 SQL Server Express 实例。我可以使用 Management Studio 连接到实例,并看到服务器是通常的.\sqlserver,带有sa 和一个虚拟密码。实际的数据库尚未创建,但我可以访问服务器并查看系统数据库以及创建登录名。

但是,尝试执行迁移数据库更新时,我收到以下错误。

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

当然,我怀疑我的连接字符串有什么问题(我仍然这样做)。

"ConnectionStrings": { ...
   "SqlServer": "Server=.\\sqlserver;Database=Blopp;Uid=sa;Pwd=Abc123();"
}

我已经尝试了所有常见的变体 - 单反斜杠、四倍反斜杠、正斜杠、开头的 at-char、(localhost)而不是点、计算机名而不是点等。我不知道还有什么可能。我试过手动创建数据库。我尝试使用大写字母(尽管我知道它不区分大小写)。没有任何帮助...

通常努力的证明:here (SO)here (MSDN)here (SO)here (SO)here (Hanselman)here (client protocol/service running)

我到底错过了什么?

【问题讨论】:

  • 通常的实例名称是 .\SQLEXPRESS
  • @ErikEJ 是的,没错。如我在问题中的示例以及链接示例中所示。我希望我的问题就这么简单。 (这将是令人尴尬的草率,但至少可以简单地解决。)
  • 这能回答你的问题吗? Why am I getting "Cannot Connect to Server - A network-related or instance-specific error"?您是否通过每一个步骤来启用远程访问?允许服务器远程访问; TCP 开启;防火墙打开; SQL Server 和 Browser 服务启动;正确的实例名称?如果您实际使用的是 LocalDB,那么您需要 (LocalDb)\MSSQLLocalDB 作为主机\实例名称
  • @marc_s 我指的是名为 Earth 的行星,因此根据grammar,它应该大写(与不应该的泥土、表面或土壤相反)。另外,感谢更正 - 我认为更好的表述。
  • @marc_s 好吧,你的逻辑只有在阅读文章的整个而不是只看第一段时才有效(就像我一样,同时偏见确认什么我已经知道了”)。噗......不过,严肃地说,是的 - 你是对的,我的立场是正确的。我很遗憾未能进行更彻底的调查。但是,我并不抱歉,因为我刚刚学到了一些新东西。这几乎总是一件好事!

标签: sql-server entity-framework connection-string


【解决方案1】:

根据错误,您有网络或 SQL 配置问题。

要进一步确认这一点,您可以进行 UDL 测试(或您可以进行的最基本的非 SSMS 测试),参考:How to perform a UDL test to check the SQL Server Connectivity

Why am I getting “Cannot Connect to Server - A network-related or instance-specific error”? 的第一个答案对于您提到的错误类型有一个很好的故障排除清单。

如果您的 UDL 测试有效,但您仍然无法连接。检查您的连接字符串。一个简单的方法是: 转到 Visual Studio(Visual Studio 不是 SQL Server Management Studio)并执行:

  1. 转到工具 -> 连接到数据库
  2. 在服务器名称下选择您的数据库服务器名称(让列表 如果需要时间填充)。
  3. 在连接到数据库下,选择选择或输入数据库名称
  4. 从下拉列表中选择您的数据库。
  5. 选择数据库后尝试测试连接。
  6. 如果测试连接成功,请单击“确定”。
  7. 在 Visual Studio 中,转到 View -> Server Explorer
  8. 在“服务器资源管理器”窗口的“数据连接”下,选择您的 数据库。 右键单击您的数据库 -> 单击属性
  9. Properties 窗口中,您将看到您的 Connection String

取自:Juned Khan Momin 此问题的答案:How to get the connection string from a database

【讨论】:

  • 这将产生正确的连接字符串,如果您检查我的研究来源列表中的链接,这不是问题。注意问题不是如何获取连接字符串无法连接到 DB(尽管连接字符串显然正确)
  • 您好@KonradViltersten,感谢您的评论。鉴于您说:自然,我怀疑我的连接字符串(我仍然这样做)并且在您研究的事物列表中,我没有看到任何清楚您如何获得连接字符串的东西,我认为我们不是对连接字符串语法有信心。我在答案中添加了一个 UDL 测试,目的是进一步确认错误配置是与应用程序有关,还是与网络/SQL 服务器有关
  • @KonradViltersten 如果您不介意,我想保留答案。我认为这仍然是一个很好的故障排除步骤。首先:确认我们有一个格式正确的连接字符串,然后如果问题仍然存在:做一个简单的 UDL 测试,以确认它是应用程序配置错误,还是网络/SQL 服务器配置错误但是,考虑到您使用了多长时间StackOverflow,如果你觉得它分散注意力或误导,我会删除它。祝你有美好的一天。
  • 事实上,如果你抢了@Charlieface 的评论(他似乎没有重新发布它作为答案)并将其添加到你的答案中,我很乐意接受它作为正确的一。毕竟,正是那条评论让我失望了。而且我确信用户不会介意(如果他们介意,我会道歉并承担责任)。
  • 我很高兴您最终能够解决您的问题。如果@Charlieface 没有发布他的答案,那么要“关闭”问题,如果其他人没有发布更好的答案,您可以选择我的答案。如果稍后,他发布了他的答案,您可以取消选中我的问题并选择他的。享受你的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多