我一直在使用 SQL Server 及其实例类型 - 默认和命名。我的理解一直是,要连接到命名实例,必须指定实例名称。但是,我最近发现,如果将 TCP 端口设置为 1433,我可以连接到命名实例,而无需指定实例名称,也无需设置别名。
我很想知道这是否是预期的行为。我无法找到任何解释或证实此行为的文档。谁能对此提供一些见解?当 TCP 端口设置为 1433 时,是否通常能够在不提供实例名称的情况下连接到命名实例?
我感谢对此事的任何澄清。
提前致谢!
我一直在使用 SQL Server 及其实例类型 - 默认和命名。我的理解一直是,要连接到命名实例,必须指定实例名称。但是,我最近发现,如果将 TCP 端口设置为 1433,我可以连接到命名实例,而无需指定实例名称,也无需设置别名。
我很想知道这是否是预期的行为。我无法找到任何解释或证实此行为的文档。谁能对此提供一些见解?当 TCP 端口设置为 1433 时,是否通常能够在不提供实例名称的情况下连接到命名实例?
我感谢对此事的任何澄清。
提前致谢!
是的,这很正常。
文档说:
因此,无论是默认实例还是命名实例,您都可以通过固定端口号进行连接。
您需要使用配置管理器设置静态端口号,否则每次启动时都会不同。如果它是动态的,那么您需要使用该名称,并且需要运行 SQL 浏览器,以便它可以传达正确的端口号。
要连接到任何 SQL Server 实例(无论是命名实例还是默认实例),执行该工作的网络库需要知道 2 个参数:IP 和端口号。默认实例保留有一个默认端口 1433,因此,如果您未指定任何端口号,则将使用此端口进行连接。但是,如果您有一个命名实例并且知道其端口号,则可以通过传递连接到它,而
IP,<port number>
无需使用命名实例的名称。当您使用该名称时,将为您完成以下工作:SQL Server Browser 接受该名称并返回端口号,因此名称并不神秘:它仍然被转换为端口号。如果不运行 SQL Server Browser,您将收到连接错误,因为无法知道端口。当您将命名实例设置为 1433 时,您做了什么?您现在无法在同一台电脑上安装默认实例,因为命名实例刚刚占用了它的默认端口。是的,现在您可以在不指定端口号的情况下进行连接,但您只能为此电脑的一个 SQL Server 实例执行此操作。