编辑
新信息:在 Chrome 中导航到 localhost:1434 时,我收到“ERR_EMPTY_RESPONSE”,而其他端口则收到“糟糕!此链接似乎已损坏”。所以似乎绑定正常?
到目前为止,这是我的设置:
- 我已将 Windows 防火墙配置为允许 1433 上的 TCP 和 1434 上的 UDP。
- 我已将 SQL Server 设置为使用端口 1433 上的任何 IP(使用 SQL Server 配置管理器)。
- 我的 hosts 文件包含默认条目(“127.0.0.1 localhost”和“::1 localhost”)。
- 我有时会有一个运行 Web 服务器的 Visual Web Developer 调试会话,但它在特定端口 (localhost:5XXXX) 上。
我尝试过的:
- 我能在 cmd 提示符中 ping 本地主机。
- 我能如果我指定,则通过 SSMS 连接到数据库127.0.0.1或者::1作为服务器名称。
- 我不能如果我指定,则通过 SSMS(或 ADO.NET)连接到数据库本地主机作为服务器名称。我尝试了 Windows 和 SQL 身份验证,我得到的错误是标准
无法连接到本地主机。附加信息 --> 超时已过期。操作完成前已超时或服务器未响应。(Microsoft Sql Server)
其他考虑因素:
- 从任务栏停止 Visual Web Developer Web 服务器不会影响 SQL 问题。
- SQL 错误日志表明它在启动时正在监听某些管道名称 url(我不明白这会如何影响 localhost 但不会影响 127.0.0.1)。
我可能可以在所有地方使用 127.0.0.1,但 localhost 无法正常工作让我感到害怕,我想弄清楚原因。
我对网络或 SQL Server 不是很了解,所以我被难住了。如果你想让我尝试任何方法来帮助诊断,只需在评论中写下来,我就会试一试。
Netstat 结果:
设置相对于 C:\Program Files\Microsoft SDKs\Windows\v6.1 的 SDK 环境 针对 Windows Server 2008 x86 DEBUG C:\Program Files\Microsoft SDKs\Windows\v6.1>netstat -ano | findstr 1434 UDP 0.0.0.0:1434 *:* 6868 UDP [::]:1434 *:* 6868 C:\Program Files\Microsoft SDKs\Windows\v6.1>netstat -ano | findstr 1433 TCP 0.0.0.0:1433 0.0.0.0:0 正在侦听 2268 TCP 127.0.0.1:1433 127.0.0.1:50758 已建立 2268 TCP 127.0.0.1:50758 127.0.0.1:1433 已建立 5008 TCP [::]:1433 [::]:0 正在侦听 2268 TCP [::1]:1433 [::1]:51202 已建立 2268 TCP [::1]:1433 [::1]:51616 已建立 2268 TCP [::1]:51202 [::1]:1433 已建立 5008 TCP [::1]:51616 [::1]:1433 已建立 5008 C:\Program Files\Microsoft SDKs\Windows\v6.1>
SQL Server 日志文件:
如果有帮助的话
2010-01-30 12:58:59.01 服务器 Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 2009 年 3 月 29 日 10:27:29 版权所有 (c) 1988-2008 Microsoft Corporation Windows NT 6.0 上的 Express 版本(Build 6002:Service Pack 2) 2010-01-30 12:58:59.01 服务器 (c) 2005 Microsoft Corporation。 2010-01-30 12:58:59.01 服务器版权所有。 2010-01-30 12:58:59.01 服务器服务器进程ID为2268。 2010-01-30 12:58:59.01 服务器系统制造商:“Dell Inc.”,系统型号:“Inspiron 1545”。 2010-01-30 12:58:59.01 服务器身份验证模式为混合。 2010-01-30 12:58:59.02 服务器在文件“c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log\ERRORLOG”中记录 SQL Server 消息。 2010-01-30 12:58:59.02 服务器此 SQL Server 实例最后报告使用进程 ID 7396 的时间是 2010 年 1 月 30 日下午 12:57:38(本地时间)2010 年 1 月 30 日下午 5:57:38(UTC)。这只是一条信息性消息;无需用户采取任何措施。 2010-01-30 12:58:59.02 服务器注册表启动参数: -dc:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\master.mdf -ec:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log\ERRORLOG -lc:\Program 文件\Microsoft SQL 服务器\MSSQL10.SQLEXPRESS\MSSQL\DATA\mastlog.ldf 2010-01-30 12:58:59.02 服务器 SQL Server 正在以正常优先级 (=7) 启动。这只是一条信息性消息。无需用户采取任何措施。 2010-01-30 12:58:59.02 服务器检测到 2 个 CPU。这是一条信息性消息;无需用户采取任何措施。 2010-01-30 12:58:59.08 服务器使用动态锁分配。每个节点初始分配 2500 个锁块和 5000 个锁所有者块。这只是一条信息性消息。无需用户操作。 2010-01-30 12:58:59.17 服务器节点配置:节点 0:CPU 掩码:0x00000003 活动 CPU 掩码:0x00000003。此消息提供此计算机的 NUMA 配置描述。这只是一条信息性消息。无需用户采取任何措施。 2010-01-30 12:58:59.30 spid7s 正在启动数据库“master”。 2010-01-30 12:58:59.41 spid7s Recovery 正在数据库“master”(1) 中写入检查点。这只是一条信息性消息。无需用户执行任何操作。 2010-01-30 12:58:59.67 spid7s FILESTREAM:有效级别 = 0,配置级别 = 0,文件系统访问共享名称 =“SQLEXPRESS”。 2010-01-30 12:58:59.92 spid7s SQL 跟踪 ID 1 由登录“sa”启动。 2010-01-30 12:58:59.94 spid7s 正在启动数据库“mssqlsystemresource”。 2010-01-30 12:58:59.95 spid7s 资源数据库构建版本为 10.00.2531。这只是一条信息性消息。无需用户采取任何措施。 2010-01-30 12:59:00.82 spid7s 服务器名称为“DELL\SQLEXPRESS”。这只是一条信息性消息。无需用户采取任何措施。 2010-01-30 12:59:00.83 服务器A自生成的证书已成功加载以进行加密。 2010-01-30 12:59:00.84 服务器服务器正在监听 [‘any’ 1433]。 2010-01-30 12:59:00.84 服务器服务器正在监听 [‘any’ 1433]。 2010-01-30 12:59:00.84 spid10s 启动数据库“模型”。 2010-01-30 12:59:00.85 服务器服务器本地连接提供程序已准备好接受 [ \\.\pipe\SQLLocal\SQLEXPRESS ] 上的连接。 2010-01-30 12:59:00.86 服务器服务器本地连接提供程序已准备好接受 [ \\.\pipe\MSSQL$SQLEXPRESS\sql\query ] 上的连接。 2010-01-30 12:59:00.86 服务器专用管理员连接支持未启动,因为此版本的 SQL Server 已禁用此功能。如果要使用专用管理员连接,请使用跟踪标记 7806 重新启动 SQL Server。这只是一条信息性消息。无需用户采取任何措施。 2010-01-30 12:59:00.87 服务器 SQL Server 网络接口库无法为 SQL Server 服务注册服务主体名称 (SPN)。错误:0x54b,状态:3。无法注册 SPN 可能会导致集成身份验证回退到 NTLM 而不是 Kerberos。这是一条信息性消息。仅当身份验证策略要求使用 Kerberos 身份验证时才需要采取进一步措施。 2010-01-30 12:59:00.87 spid7s 信息:未找到全文支持的语言。 2010-01-30 12:59:00.87 服务器 SQL Server 现已准备好进行客户端连接。这是一条信息性消息;无需用户执行任何操作。 2010-01-30 12:59:00.91 spid7s 正在启动数据库“msdb”。 2010-01-30 12:59:01.21 spid10s 清除 tempdb 数据库。 2010-01-30 12:59:02.78 spid10s 启动数据库“tempdb”。 2010-01-30 12:59:03.30 spid13s Service Broker 协议传输已禁用或未配置。 2010-01-30 12:59:03.30 spid13s 数据库镜像协议传输已禁用或未配置。 2010-01-30 12:59:03.31 spid7s 恢复已完成。这只是一条信息性消息。无需用户操作。 2010-01-30 12:59:03.31 spid13s Service Broker 管理器已启动。
答案1
根据您的补充信息编辑了我的答案。
我会遵循所有步骤这里并告知我们。
答案2
您应该使用 localhost\SQLEXPRESS 连接到 SQL Server 的本地实例 - 假设该实例称为 SQLEXRESS。
我注意到在您的评论中,您说执行此操作时出现错误,您能否发布它,因为它可能有助于解决您的问题。
另外,您可以在连接字符串中使用 .\SQLEXPRESS 来连接到 SQL Server Express 的本地实例,而不是使用 127.0.0.1。
答案3
尝试暂时启用远程连接,SQL Server 可能会看到主机名并认为这是一个远程连接。
答案4
当您连接到 SSMS 中的服务器时,如果在选项、连接属性中指定命名管道而不是 TCP/IP 作为网络协议,会发生什么情况?
这是我的 netstat,如果它有帮助的话:
C:\Users\fff>netstat -ano | findstr 1433 TCP 0.0.0.0:1433
0.0.0.0:0 正在监听 3680 TCP [::]:1433 [::]:0 正在监听 3680C:\Users\fff>netstat -ano | findstr 1434 TCP 127.0.0.1:1434
0.0.0.0:0 正在监听 3680 TCP [::1]:1434 [::]:0 正在监听 3680 UDP 0.0.0.0:1434
: 2644 UDP [::]:1434 : 2644