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

时间:2011-07-03 21:18:58

标签: sql sql-server sql-server-2008 connection-string localhost

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

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

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

安装程序只是Windows 7 Professional上的一个SQL Server Express 2008 R2实例和VS2010。

启动Sql表示错误日志说:

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。本地主机\ 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。本地主机

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

可以从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

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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

一旦我们删除了Alias,它就会起作用。

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

SQL Server Configuration Manager Alias Node