我刚刚下载了最新版本的 SQL Express 2012,但无法连接到 localhost。我尝试了 localhost\SQLExpress 和 Windows 身份验证,但它给了我一条错误消息,说无法连接。我在这里错过了什么吗?我以前使用过 SQL Server 2008,连接到 localhost 时从来没有遇到过问题。似乎它甚至找不到它。同样在服务中,我只看到一个 SQL Server VSS 编写器。这是应该的方式吗?还是我错过了什么?谢谢
14 回答
您需要验证 SQL Server 服务是否正在运行。您可以通过转到
Start > Control Panel > Administrative Tools > Services
并检查服务 SQL Server (SQLEXPRESS
) 是否正在运行来执行此操作。如果没有,请启动它。您需要确保允许 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 连接身份验证模式是否与您的连接字符串匹配:
如果您使用用户名和密码进行连接,则需要将 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 登录名:
否则,运行
Start -> Run -> Services.msc
如果是,它是否正在运行?
如果它没有运行,那么
听起来你没有安装所有东西。启动安装文件并选择“新安装或向现有安装添加功能”选项。从那里您应该能够确保已安装数据库引擎服务。
转到开始 -> 程序 -> 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>
在 SQL SERVER EXPRESS 2012 中,您应该使用“(localdb)\MSSQLLocalDB”作为数据源名称,例如,您可以使用这样的连接字符串
Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
首先尝试Ravindra Bagale提供的最流行的解决方案。
如果您从 localhost 到数据库的连接仍然失败并出现类似于以下的错误:
无法连接到 SQL Server 数据库。错误:与主机 [IP 地址] 端口 1433 的 TCP/IP 连接失败。错误:“连接被拒绝:连接。验证连接属性。确保 SQL Server 实例正在主机上运行并在端口上接受 TCP/IP 连接。确保与端口的 TCP 连接未被防火墙阻止。”
- 打开 SQL Server 配置管理器。
- 展开相关服务器实例的 SQL Server 网络配置。
- 双击“TCP/IP”。
- 在“协议”部分下,将“启用”设置为“是”。
- 在“IP 地址”部分下,在“IP All”下设置 TCP 端口(默认为 1433)。
在“IP 地址”部分下,找到 IP 地址为 127.0.0.1(对于 IPv4)和 ::1(对于 IPv6)的子部分,并将“启用”和“活动”设置为“是”,并将 TCP 端口设置为 1433。
转到
Start > Control Panel > Administrative Tools > Services
,然后重新启动 SQL Server 服务 (SQLEXPRESS
)。
我有一个类似的问题 - 也许我的解决方案会有所帮助。我刚刚安装了 MSSQL EX 2012(默认安装)并尝试连接 VS2012 EX。没有喜悦。然后我查看了服务,确认 SQL Server (SQLEXPRESS) 确实在运行。
但是,我看到另一个名为 SQL Server Browser 的有趣服务被禁用。我启用它,触发它,然后能够在 VS2012 EX 的新连接中检索服务器名称并连接。
奇怪的是,他们会禁用 VS 连接所需的服务。
尝试从 Windows 身份验证更改为混合模式
我的问题是我没有指定.\
. 我只是指定实例的名称:
- 不工作:
SQL2016
- 工作:
.\SQL2016
这很奇怪,我有类似的问题。我下载了带有工具的 SQL 2012 Express 包,但没有安装数据库引擎。
我从 MS 站点下载了另一个,这个安装了数据库引擎。重新启动后,服务已列出并准备就绪。
我遇到了同样的问题,我发现这是在我为我的 SQL 2012 安装更新后发生的。为我解决的问题是进入程序和功能并对其进行修复。
我的情况
SQL Server Management Studio中的空实例名称>选择您的数据库引擎>鼠标右键>属性(服务器属性)>链接视图连接属性>产品>实例名称为空
数据源=.\SQLEXPRESS 不起作用 => 在 web.config 中使用 localhost(见下文)
解决方案:在 web.config
xxxxxx = 不带 .mdf 的数据库名称 yyyyyy = VS2012 数据库资源管理器中的数据库名称
您可以强制使用 TCP 而不是共享内存,方法是在连接字符串中为服务器名称添加前缀 tcp: 或使用 localhost。
尝试将拥有该服务的用户更改为本地系统或使用您的管理员帐户。
在服务下,我将服务 SQL Server (MSSQLSERVER) 登录从 NT Service\Sql... 更改为本地系统。右键单击该服务并转到登录选项卡并选择单选按钮本地系统帐户。如果更合适,您也可以强制其他用户也运行它。