无法在SQL Server Express 2012/2016上连接到localhost

问题描述 投票:87回答:14

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

c# sql-server-2012-express sql-server-2016-express
14个回答
158
投票

According to Aaron Bertand

  1. 您需要验证SQL Server服务是否正在运行。您可以通过转到Start > Control Panel > Administrative Tools > Services并检查服务SQL Server(SQLEXPRESS)是否正在运行来执行此操作。如果没有,请启动它。
  2. 当您在服务小程序中时,还要确保启动服务SQL Browser。如果没有,start it
  3. 您需要确保允许SQL Server使用TCP / IP或命名管道。您可以通过在Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(或SQL Server Configuration Manager)和make sure that TCP/IP and Named Pipes are enabled中打开SQL Server配置管理器来打开它们。 SQL Server Configuration Manager
  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应用程序中进行调试时出现此错误,那么您需要add the ApplicationPoolIdentity as a SQL Server login
  5. 否则,运行Start -> Run -> Services.msc如果是这样,它是否正在运行?

如果它没有运行那么

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


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


1
投票

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


1
投票

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

  • 不起作用:SQL2016
  • 工作:.\SQL2016

0
投票

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

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


0
投票

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

enter image description here


109
投票

转到开始 - >程序 - > 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连接,至少我可以。

enter image description here

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

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

12
投票

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

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;

10
投票

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

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

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


7
投票

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

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

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

  1. 打开SQL Server配置管理器。
  2. 展开有问题的服务器实例的SQL Server网络配置。
  3. 双击“TCP / IP”。
  4. 在“协议”部分下,将“已启用”设置为“是”。
  5. 在“IP地址”部分下,将TCP端口设置为“IP All”(默认为1433)。
  6. 在“IP地址”部分下,找到IP地址为127.0.0.1(对于IPv4)和:: 1(对于IPv6)的子部分,并将“已启用”和“活动”都设置为“是”,将TCP端口设置为1433。 TCP/IP Properties
  7. 转到Start > Control Panel > Administrative Tools > Services,然后重新启动SQL Server服务(SQLEXPRESS)。

6
投票

首先检查SQL Server服务是否正在运行或停止,如果它刚刚启动它,则执行此操作。请按照以下步骤操作。

1.Start - > Run - > Services.msc

enter image description here

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

“SQL2014”由我提供,在您的情况下可能是另一个名称

enter image description here

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

希望它会帮助某人。


3
投票

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

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

enter image description here


2
投票

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


1
投票

这很奇怪我有类似的问题。我使用Tools下载了SQL 2012 Express的软件包,但未安装数据库引擎。

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

© www.soinside.com 2019 - 2024. All rights reserved.