【问题标题】:Configure a SQL Server Instance as (local)将 SQL Server 实例配置为(本地)
【发布时间】:2011-06-11 06:31:23
【问题描述】:

我们开发团队的每个成员都有一个我们的应用程序数据库的副本,该数据库在本地版本的 SQL Server 2008 Enterprise SP1 上运行。每个人都可以通过在他们的 web.config 文件中指定他们的服务器和实例名称来访问数据库,但是为了最好地共享我们的 web.config 文件的开发人员版本,我们通过使用集成的安全性和设置服务器来标准化使连接字符串通用财产到(本地)。此策略适用于我们的大多数 64 位 Windows 7 机器,但在少数情况下(本地)无法识别。我们通过 SQL Server 配置管理器比较了设置(即确保启用了命名管道协议),我们尝试通过 SQL Server 客户端网络实用程序设置“(本地)”别名,但我们没有任何运气。为了在我们的连接字符串中使用 (local) 需要做什么?

【问题讨论】:

  • 这些计算机是否运行了多个 SQL Server 引擎(比如 Express 版和企业版)?在这种情况下,您还需要指定实例名称。
  • 我以为(local) 总是使用共享内存。
  • 好问题。只有 SQL Server 2008 正在运行。 SQL Express 已安装但未运行。
  • @Oded - 我认为如果使用(local). 而不是机器名称,它将始终使用共享内存协议而不是命名管道。我想我是几年前在 SQL Server 性能网站上读到的,所以它很可能是完全错误的!

标签: sql-server connection-string local


【解决方案1】:

数据库连接作为(本地)不起作用的那些机器可能是这种方式,因为在数据库安装期间,实例名称被设置为特定的名称,而不是默认的“默认实例”。您可以更改这些实例名称,这可能会解决此问题:http://coderjournal.com/2008/02/how-to-change-instance-name-of-sql-server/

我认为当您已经安装并运行 SQL Server Express,然后安装 SQL Server Developer Edition / Standard / 等时会发生这种情况......虽然不是 100% 肯定,但据我回忆,可能是这种情况.

【讨论】:

  • 好建议。我尝试更改实例名称,但没有这样做。我现在倾向于你的后评论。在工作机器上,要么没有安装 Express,要么我们认为它是在完整版 SQL 之后安装的。
【解决方案2】:

尝试将您的实例的管道名称更改为“\.\pipe\sql\query”。

您可以通过启动 SQL Server 配置管理器并导航到 SQL Server 网络配置 > (实例名称)的协议并右键单击命名管道并选择属性来找到该设置。如果未启用命名管道,请务必在重新启动 SQL Server 服务之前启用它(请参阅@NoahHeldman 的评论)。

连接到默认实例(即没有实例名称)时,SQL Server 使用默认端口 1433 和默认管道名称“\.\pipe\sql\query”。将其改回匹配应该(希望)修复它。

【讨论】:

  • 是的。做到了。谢谢你的帮助,杰夫。在我的书中,您已经是 SO 中受欢迎的补充。
  • 我在一台机器上遇到了同样的问题,这也对我有用。谢谢!
  • 我尝试了这些相同的步骤,但在尝试启动 SQL Server 服务时遇到了一堆错误,包括“服务器命名管道提供程序无法侦听 [\\.\pipe\sql\查询]。错误:0x57"。发生这种情况是因为当我尝试启动服务时已禁用命名管道。要修复,只需将旧值放回管道名称字段(类似于 \\.\pipe\mssql$\sql\query),启动和停止服务,然后替换为 \\.\pipe\sql \query 并再次启动服务。至少,这对我有用......
猜你喜欢
  • 1970-01-01
  • 2020-06-21
  • 2017-08-06
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
相关资源
最近更新 更多