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

时间:2012-10-08 03:07:44

标签: c# sql-server-2012-express sql-server-2016-express

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

14 个答案:

答案 0 :(得分:155)

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如果是,它是否正在运行?

  6. 如果它没有运行那么

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

答案 1 :(得分:105)

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

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

然后进入“SQL Server网络配置”并双击TCP / IP。单击“IP地址”选项卡并滚动到底部。在“IP All”下,删除TCP Dynamic Ports(如果存在)并将TCP Port设置为1433.单击OK,然后返回“SQL Server Services”并重新启动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>

答案 2 :(得分:11)

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

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

答案 3 :(得分:10)

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

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

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

答案 4 :(得分:7)

首先尝试Ravindra Bagale提供的最受欢迎的解决方案。

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

  

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

  1. 打开SQL Server配置管理器。
  2. 展开有问题的服务器实例的SQL Server网络配置。
  3. 双击&#34; TCP / IP&#34;。
  4. 根据&#34;协议&#34; section,set&#34; Enabled&#34;到&#34;是&#34;。
  5. 在&#34; IP地址&#34;部分,将TCP端口设置在&#34; IP All&#34; (默认为1433)。
  6. 在&#34; IP地址&#34;部分,找到IP地址为127.0.0.1(对于IPv4)和:: 1(对于IPv6)的子部分,并设置&#34;已启用&#34;和&#34;活跃&#34;到&#34;是&#34;,TCP端口到1433。

    TCP/IP Properties

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

答案 5 :(得分:6)

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

1.开始 - &gt;运行 - &gt; Services.msc

enter image description here

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

    “SQL2014”由我提供,它可能是您案例中的另一个名称

    enter image description here

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

    希望它会帮助别人。

答案 6 :(得分:3)

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

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

enter image description here

答案 7 :(得分:2)

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

答案 8 :(得分:1)

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

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

答案 9 :(得分:1)

我的情况

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

  • 数据源=。\ SQLEXPRESS不起作用=&gt;在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

答案 10 :(得分:1)

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

答案 11 :(得分:1)

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

  • 没有工作:SQL2016
  • 工作:.\SQL2016

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

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

enter image description here