一直使用正常的SQL Server 2005,突然一天用管理器(Management Studio)不能连接到实例。所有实例均不能连接。错误信息如下:
TITLE: Connect to Server
------------------------------
Cannot connect to RATLSQL05.
------------------------------
ADDITIONAL INFORMATION:
An error has occurred while establishing a connection to the server.? When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 53)
?尝试:
首先,想到Surface Area Configuration里关于远程连接的设置是不是有人改动了。察看后却发现依然是允许Local and Remote Connections,并只允许TCP/IP。确认后重新启动实例及SQL Server Brower服务,问题依旧。
随后,尝试连接其他实例,都遇到这个错误。看来不是用户名密码,或实例本身的问题。
最后,在Connect to Server窗口上的Server Name下拉框里,选择Browse for more,看看SQL Server是否识别出了所有实例,选择Local Servers选项卡,结果在Database Engine下面发现的几个实例,和外面Server Name下拉列表显示的不一样!于是在这里选择一个实例,确定,并连接,几秒钟后,正常进入管理器。
原来,机器名被改过了。由于SQL Server的instance全名是 机器名\实例名(对于default instance,全名就是机器名本身),机器名改动了,而登陆界面下拉列表依然显示旧的实例全名,所以连接错误。
总结:对于SQL Server来说,其提供的错误信息完全没有涉及正确的思路,而把用户误导到其他设置方向去,应该精细化其错误处理逻辑。对于用户,一方面不能完全根据程序提供的出错信息判断错误,另一方面,注意经验积累,逐渐形成一定的思路。
?