109

我刚刚下载了最新版本的 SQL Express 2012,但无法连接到 localhost。我尝试了 localhost\SQLExpress 和 Windows 身份验证,但它给了我一条错误消息,说无法连接。我在这里错过了什么吗?我以前使用过 SQL Server 2008,连接到 localhost 时从来没有遇到过问题。似乎它甚至找不到它。同样在服务中,我只看到一个 SQL Server VSS 编写器。这是应该的方式吗?还是我错过了什么?谢谢

4

14 回答 14

204

根据 Aaron Bertand 的说法

  1. 您需要验证 SQL Server 服务是否正在运行。您可以通过转到Start > Control Panel > Administrative Tools > Services并检查服务 SQL Server ( SQLEXPRESS) 是否正在运行来执行此操作。如果没有,请启动它。

  2. 当您在服务小程序中时,还要确保服务SQL 浏览器已启动。如果没有,请启动它

  3. 您需要确保允许 SQL Server 使用 TCP/IP 或命名管道。Start > Programs > Microsoft SQL Server 2012 > Configuration Tools您可以通过在(或SQL Server Configuration Manager)中打开 SQL Server 配置管理器来打开这些,并确保启用 TCP/IP 和命名管道。如果在开始菜单中没有找到 SQL Server 配置管理器,您可以手动启动 MMC 管理单元。根据您的版本检查管理单元的路径SQL Server 配置管理器。

    SQL Server 配置管理器

  4. 验证您的 SQL Server 连接身份验证模式是否与您的连接字符串匹配:

    • 如果您使用用户名和密码进行连接,则需要将 SQL Server 配置为接受“SQL Server 身份验证模式”:

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
      
    • 如果您使用“Integrated Security=true”(Windows 模式)进行连接,并且仅在调试 Web 应用程序时出现此错误,则需要将 ApplicationPoolIdentity 添加为 SQL Server 登录名
  5. 否则,运行Start -> Run -> Services.msc如果是,它是否正在运行?

如果它没有运行,那么

听起来你没有安装所有东西。启动安装文件并选择“新安装或向现有安装添加功能”选项。从那里您应该能够确保已安装数据库引擎服务。

于 2012-10-08T03:13:49.293 回答
144

转到开始 -> 程序 -> Microsoft SQL ServerYYYY -> 配置工具 -> SQL Server YYYY 配置管理器或运行“SQLServerManager12.msc”。

确保在客户端协议下启用了 TCP/IP。

然后进入“SQL Server 网络配置”并双击 TCP/IP。单击“IP 地址”选项卡并滚动到底部。在“IP All”下删除 TCP 动态端口(如果存在)并将 TCP 端口设置为 1433。单击“确定”,然后返回“SQL Server 服务”并重新启动 SQL Server 实例。现在您可以通过 localhost 进行连接,至少我可以。

在此处输入图像描述

请注意,从其他应用程序连接时当然也会发生此错误。普通 C# Web 应用程序Web.config连接字符串的示例:

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
于 2015-12-28T13:07:05.007 回答
21

在 SQL SERVER EXPRESS 2012 中,您应该使用“(localdb)\MSSQLLocalDB”作为数据源名称,例如,您可以使用这样的连接字符串

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
于 2017-04-05T11:27:03.873 回答
18

首先尝试Ravindra Bagale提供的最流行的解决方案。

如果您从 localhost 到数据库的连接仍然失败并出现类似于以下的错误:

无法连接到 SQL Server 数据库。错误:与主机 [IP 地址] 端口 1433 的 TCP/IP 连接失败。错误:“连接被拒绝:连接。验证连接属性。确保 SQL Server 实例正在主机上运行并在端口上接受 TCP/IP 连接。确保与端口的 TCP 连接未被防火墙阻止。”

  1. 打开 SQL Server 配置管理器。
  2. 展开相关服务器实例的 SQL Server 网络配置。
  3. 双击“TCP/IP”。
  4. 在“协议”部分下,将“启用”设置为“是”。
  5. 在“IP 地址”部分下,在“IP All”下设置 TCP 端口(默认为 1433)。
  6. 在“IP 地址”部分下,找到 IP 地址为 127.0.0.1(对于 IPv4)和 ::1(对于 IPv6)的子部分,并将“启用”和“活动”设置为“是”,并将 TCP 端口设置为 1433。

    TCP/IP 属性

  7. 转到Start > Control Panel > Administrative Tools > Services,然后重新启动 SQL Server 服务 ( SQLEXPRESS)。

于 2018-01-25T11:07:20.947 回答
11

我有一个类似的问题 - 也许我的解决方案会有所帮助。我刚刚安装了 MSSQL EX 2012(默认安装)并尝试连接 VS2012 EX。没有喜悦。然后我查看了服务,确认 SQL Server (SQLEXPRESS) 确实在运行。

但是,我看到另一个名为 SQL Server Browser 的有趣服务被禁用。我启用它,触发它,然后能够在 VS2012 EX 的新连接中检索服务器名称并连接。

奇怪的是,他们会禁用 VS 连接所需的服务。

于 2013-03-03T21:35:54.263 回答
9

首先检查 SQL Server 服务是运行还是停止,如果停止就启动它,这样做..只需按照以下步骤操作。

1.开始->运行->Services.msc

在此处输入图像描述

  1. 转到服务面板中的标准选项卡,然后搜索 SQl Server(SQL2014)

“SQL2014”是我给的,在你的情况下它可能是另一个名字

在此处输入图像描述

就是这样,一旦你启动 SQL 服务,你就可以连接本地数据库了。

希望它会帮助某人。

于 2016-10-28T06:13:33.620 回答
8

我的所有服务都按预期运行,但我仍然无法连接。

我必须为我的 SQL Server Express 协议更新SQL Server 配置管理器中的 TCP/IP 属性部分,并将IPALL端口设置为 1433,以便按预期连接到服务器。

在此处输入图像描述

于 2018-10-24T15:19:59.347 回答
3

尝试从 Windows 身份验证更改为混合模式

于 2015-01-16T12:32:02.937 回答
3

完成@Ravindra Bagale提到的步骤后,请尝试此步骤。 Server name: localhost\{Instance name you were gave}

在此处输入图像描述

于 2019-06-03T04:02:28.737 回答
2

我的问题是我没有指定.\. 我只是指定实例的名称:

  • 不工作:SQL2016
  • 工作:.\SQL2016
于 2018-11-13T16:54:35.463 回答
1

这很奇怪,我有类似的问题。我下载了带有工具的 SQL 2012 Express 包,但没有安装数据库引擎。

我从 MS 站点下载了另一个,这个安装了数据库引擎。重新启动后,服务已列出并准备就绪。

于 2013-09-30T19:52:28.060 回答
1

我遇到了同样的问题,我发现这是在我为我的 SQL 2012 安装更新后发生的。为我解决的问题是进入程序和功能并对其进行修复。

于 2014-09-19T15:23:59.750 回答
1

我的情况

  • SQL Server Management Studio中的空实例名称>选择您的数据库引擎>鼠标右键>属性(服务器属性)>链接视图连接属性>产品>实例名称为空

  • 数据源=.\SQLEXPRESS 不起作用 => 在 web.config 中使用 localhost(见下文)

解决方案:在 web.config

xxxxxx = 不带 .mdf 的数据库名称 yyyyyy = VS2012 数据库资源管理器中的数据库名称

您可以强制使用 TCP 而不是共享内存,方法是在连接字符串中为服务器名称添加前缀 tcp: 或使用 localhost。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

于 2014-04-24T13:00:56.287 回答
0

尝试将拥有该服务的用户更改为本地系统或使用您的管理员帐户。

在服务下,我将服务 SQL Server (MSSQLSERVER) 登录从 NT Service\Sql... 更改为本地系统。右键单击该服务并转到登录选项卡并选择单选按钮本地系统帐户。如果更合适,您也可以强制其他用户也运行它。

于 2018-12-10T21:44:34.873 回答