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

Wul*_*lie 8 sql sql-server connection-string localhost sql-server-2008

我知道我们应该知道这些短语但突然间我所有的联系都localhost\sqlexpress停止了工作.作为.\sqlexpress并且(local)\sqlexpress工作,如果不是因为我正在开发一个团队项目,其中所有连接字符串都以前一格式定义,这将不是什么大问题.显然我很难接受它应该不再工作所以我花了几个小时分析并重新安装几个SQL Server版本无济于事.(并且在破坏VS2010中的数据库项目的路上,所以我需要重新安装...).

但这里有详细信息.如前所述,我无法连接到localhost\sqlexpress但是.\sqlexpress.使用SQL Server Manager的相同症状,以及用于部署和运行wcf服务的连接字符串.有趣的是,将默认实例解析为localhost有效.

首先,是的,SQL Server正在运行,只是为了确保我启用TCP/IP并将端口固定为1433,尽管它可以在禁用TCP/IP的同事机器上运行.(在我阅读的某个地方,localhost可以使用本机SQL客户端使用共享内存来解决,所以我猜这就是他的系统上发生的事情.)

该设置只是一个SQL Server Express 2008 R2实例和Windows 7 Professional上的VS2010.

启动Sql表示错误日志说:

Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Run Code Online (Sandbox Code Playgroud)

Netstat说(摘录):

TCP    0.0.0.0:1433           Machinenename:0             LISTENING
TCP    [::]:1433              Machinenename:0             LISTENING
Run Code Online (Sandbox Code Playgroud)

我注意到没有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
Run Code Online (Sandbox Code Playgroud)

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

2. localhost

sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP
Run Code Online (Sandbox Code Playgroud)

可以从SQL Server Management Studio连接到localhost

3.(本地)\ sqlexpress

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

可以从SQL Server Management Studio连接到(本地)\ sqlexpress

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

小智 5

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


Jam*_* L. 2

您是否已验证在 SQL Server 配置管理器中的“SQL Server 网络配置”下启用了共享内存?协议?

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

还有一个想法...端口 1434 用于 SQL Server 发现服务,它可以让 SQL Management Studio 等程序发现计算机上正在运行 SQL Server。还有一件事需要调查。