无法使用localhost\sqlserver连接到数据库。

8
我知道我们应该注意这些短语,但突然间我所有与localhost\sqlexpress的连接都停止了。由于.\sqlexpress(local)\sqlexpress可以工作,如果不是因为我正在一个团队项目上工作,所有连接字符串都以前面的格式定义,那就不是什么大问题。显然,我很难接受它不再起作用,所以我花了几个小时分析和重新安装了几个SQL Server版本,但都没有成功。(在此过程中,我还破坏了VS2010中的db项目,所以我也需要重新安装...)。
但以下是详细信息。如前所述,我无法连接到localhost\sqlexpress,但可以连接到.\sqlexpress。使用SQL Server Manager和部署和运行wcf服务的连接字符串具有相同的症状。有趣的是,将默认实例解析为localhost可以工作。
首先,是的,SQL Server正在运行,为了确保,我启用了TCP/IP并将端口固定为1433,尽管在我的同事机器上禁用TCP/IP也可以工作。(在某个地方,我读到当使用本地SQL客户端时,localhost可以使用共享内存来解析,所以我想这就是他的系统上正在发生的事情。)
设置只有一个SQL Server Express 2008 R2实例和Windows 7 Professional上的VS2010。
启动Sql express时,错误日志说:
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].

Netstat说(摘录):

TCP    0.0.0.0:1433           Machinenename:0             LISTENING
TCP    [::]:1433              Machinenename:0             LISTENING

我注意到127.0.0.1:1433和端口1433上的任何UDP都不存在。

为了诊断问题,我使用sqlcmd查找所使用的传输方式:

1. localhost\sqlexpress

sqlcmd -Slocalhost\sqlexpress  -> Shared memory
sqlcmd -Stcp:localhost\sqlexpress ->  SQL Server Network Interfaces: Error Locating Server/Instance Specified

即使我将共享内存指定为协议,也无法从SQL Server Management Studio连接到localhost\sqlexpress。

2. localhost

sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP

SQL Server Management Studio可以连接本地主机。

3. (local)\sqlexpress

sqlcmd -S(local)\sqlexpress  -> Shared memory
sqlcmd -Stcp:(local)\sqlexpress  ->  SQL Server Network Interfaces: Error Locating Server/Instance Specified

可以从SQL Server Management Studio连接到(local)\sqlexpress。

所以我在这里迷失了。非常感谢任何帮助。

3个回答

7

在 MS SQL 中,进入配置工具 -> SQL Server 配置管理器 选择 SQL Server 网络配置 -> 选择协议 在右侧窗口启用 TCP/IP 并在服务.msc 中重启服务 然后尝试连接到 localhost\sqlexpress


2

您是否已在SQL Server配置管理器中检查了“SQL Server Network Configuration | Protocols”下的共享内存是否已启用?

当我禁用“共享内存”协议时,“sqlcmd -S.\sqlexpress”会超时。 启用它可以使命令正常工作。

还有一个想法...端口1434用于SQL Server发现服务,该服务使SQL Management Studio等程序能够发现正在机器上运行的SQL Server。 还有一件需要调查的事情。


1
我们遇到了这个问题。由于某种原因,在这台机器上,已经创建了一个别名,将我们使用的服务器名称(localhost\SQL2008_R2)指向了一个不存在的服务器。
一旦我们删除了该别名,一切都正常了。
这些别名在 SQL Server 配置管理器中是一个树节点。

SQL Server Configuration Manager Alias Node


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接