无法连接到SQL Server Express 2012/2016上的本地主机


97

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


1
似乎安装不顺利。您是否尝试过修理/重新安装?
维克多2012年

1
您确定找到服务器的安装程序,而不是Management Studio安装程序吗?
Damien_The_Unbeliever 2012年

Answers:


181

根据亚伦·伯兰德(Aaron Bertand)的说法

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

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

  3. 您需要确保允许SQL Server使用TCP / IP或命名管道。您可以通过打开SQL Server配置管理器上把这些Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(或SQL Server Configuration Manager),并确保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如果是,则运行吗?

如果没有运行

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


2
@dido:Start-> Run-> Services.msc
Ravindra Bagale 2012年

3
要检查的另一件事是实例名称。根据SQL Server的安装方式,您可能需要也可能不需要在主机之后提供实例名称。
Arvo Bowen

首次安装后,似乎有必要启用“ TCP / IP和命名管道”
James A Mohler

3
这很愚蠢,但对我来说,问题是使用“本地主机”作为服务器名称,而不是安装中设置的“ localhost \ SQLEXPRESS01”
Guy的

1
在我的情况下,SQLBrowser被禁用,并且在sql tools文件夹中未列出配置工具。通过cmd启动配置工具https://docs.microsoft.com/zh-cn/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017如果配置自动启动SQLBrowser工具失败/programming/21375014/i-cannot-start-sql-server-browser
steven87vt

121

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

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

然后进入“ SQL Server网络配置”,然后双击TCP / IP。单击“ IP地址”标签,然后滚动到底部。在“ IP全部”下,删除“ 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>

4
最后,这对我有用!我更改了IP1,IP2等端口,但未更改IPAll。做到了,谢谢!
乔治,

2
@George与您完全一样。我什至禁用了防火墙,但没有任何效果。TCP动态端口中有一个40xxx端口。我将其删除,然后将1433放入IPAll的TCP端口中,这样做也是如此。谢谢!
阿里森

这也是我的关键。
埃里克·奥尔森

1
在将我的头撞在墙上许多小时之后,这终于奏效了。谢谢。
顶级猫

很好的解决方案。它挽救了我的一天。非常感谢!
Lavande

13

在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连接所需的服务。


不需要连接;我禁用了它,可以正常连接。当您不知道要连接的确切主机/实例名称时,它会使事情变得更容易,因为它允许其他软件查询这些事情。
西蒙·摩根

8

首先尝试由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”下设置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)。


在到达这里之前,我尝试了上述其他解决方案。这个为我修复了!另外,我发现下载名为psping的东西可以帮助我测试连接。例如:psping 127.0.0.1:1433
JMI MADISON

7

首先检查SQL Server服务正在运行还是已停止,如果已停止,则只需启动它即可..只需按照以下步骤操作即可。

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

在此处输入图片说明

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

“ SQL2014”由我提供,在您的情况下可能是“别称”

在此处输入图片说明

就是这样,一旦启动SQL Service,便可以连接本地数据库。

希望对别人有帮助。


4

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

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

在此处输入图片说明



1

这很奇怪,我有一个类似的问题。我使用工具下载了SQL 2012 Express的程序包,但未安装数据库引擎。

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


1

我的情况

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

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

解决方案:在web.config中

xxxxxx =不带.mdf的数据库名称yyyyyy = VS2012数据库浏览器中的数据库名称

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

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


1

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


1

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

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


0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.