我们正在将我们的软件从使用SQL 2000升级到2008 R2。 我们的客户将安装卸载2000的更新,并在同一实例下安装2008 R2。 所以如果没有实例存在,那么将不会设置实例名称(默认)。 但是,问题始于具有命名SQL实例的客户。
从2008 R2(从前不确定)开始,出于某种原因,通过实例名连接到服务器的客户端不成功。 我正在从Management Studio进行testing – 如果无法连接,则无法连接。 我浏览networking服务器,并在列表中find特定的服务器\实例。 但是,在尝试连接到像MyServer\INST这样的实例名称时,我得到:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)
我确实已经启用了TCP / IP和命名pipe道协议,这是我做的第一件事情。 当我使用逗号(,)和端口号(如MyServer, 49195 )连接到服务器时,它工作得很好。 所以看起来,客户端计算机只是无法识别实例名称。 这发生在我们所有安装的SQL 2008 R2以及所有客户端计算机上,包括Win 7,XP,Vista,Server 2008和Server 2003.我们在早期版本的SQL上从来没有遇到过这样的问题。 如果防火墙和防病毒都被禁用,问题甚至会持续存在。
现在,这是一个很大的更新,我们将尽快分发给所有的客户,我们希望尽量减less他们与我们需要的交互,以便安装。 我们绝对讨厌使用端口号的想法,因为它总是会有所不同,我们将不得不修改每个客户端指向这个服务器/端口。 我们的一些客户可能有数百台客户端电脑。 如何使客户端连接到指定的SQL实例再次工作? 毕竟,这是命名实例的全部目的,如果客户端无法通过名称连接到此实例,那么它甚至命名为什么?
编辑
有人提到确保SQL浏览器正在运行,所以我检查了,它正在运行。 服务器也能够连接到自己(本地) – 只是外部连接被拒绝。
UPDATE
经过更仔细的检查,我发现防火墙在testing时并没有完全禁用,在完全禁用的情况下,防火墙工作正常。 所以看来,SQL浏览器正在被来自外部客户端的防火墙阻止访问。
尝试禁用防火墙,因为它可能会阻止SQL浏览器的端口1434
SQL浏览器服务是否启用并启动?
http://www.mssqltips.com/sqlservertip/1946/overview-of-the-sql-server-browser-service/
SQL Server 2005+在识别服务器实例方面的工作方式与2000不同。
SQL浏览器服务可能没有运行。
看到这里 。
在SQL Server 2000中,服务器连接端点的标识由SQL Server服务执行。 SQL Server 2005用SQL Server Browser服务replace那个函数。