2011-07-03 144 views
8

我知道我们应该知道这样的短语,但突然所有我的连接localhost\sqlexpress停止工作。由于.\sqlexpress(local)\sqlexpress的工作,如果不是因为我正在开发一个团队项目,其中所有连接字符串都是以前格式定义的,这并不是什么大问题。显然我很难接受它不应该工作了,所以我花了几个小时分析和重新安装几个SQL Server版本无济于事。 (并在VS2010中打破数据库项目的方式,所以我需要重新安装以及...)。无法连接到数据库使用本地主机 sqlserver

但这里有细节。如前所述,我无法连接到localhost\sqlexpress,而是连接到.\sqlexpress。使用SQL Server Manager的相同症状以及用于部署和运行wcf服务的连接字符串。有趣的是足够解决默认实例localhost的作品。

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

安装程序只有一个SQL Server Express 2008 R2实例和VS2010在Windows 7专业版上。

启动了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任何UDP上端口1433

为了诊断问题我使用sqlcmd找出使用什么传输:

1.本地主机\ SQLEXPRESS

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

无法从SQL Server Management Studio连接到本地主机\ SQLEXPRESS即使我指定的共享内存作为协议

2.本地主机

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

可以从SQL Server Management S连接到本地主机tudio

3(本地)\ SQLEXPRESS

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

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

所以我在这里丢失。任何帮助,高度赞赏。

回答

2

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

当我禁用“共享内存”协议时,“sqlcmd -S。\ sqlexpress”超时。启用它使命令工作得很好。

还有一个想法......端口1434用于SQL Server发现服务,它使像SQL Management Studio之类的程序发现SQL Server正在机器上运行。还有一件事要调查。

在MS SQL
4

,去配置工具 - > SQL Server配置管理器 选择SQL Server网络配置 - >选择协议 在右侧窗口启用TCP/IP 和SERVICES.MSC 重新启动服务然后尝试连接到本地主机\ sqlexpress

0

我们有这个问题。出于某种原因,在这台机器上,创建了一个Alias,它将我们使用的服务器名称(localhost \ SQL2008_R2)指向一个不再存在的服务器。

一旦我们删除了别名,它一切工作。

别名是SQL Server配置管理器中的树节点。

SQL Server Configuration Manager Alias Node