我在 SQL Server 配置管理器中设置了一个别名,它在本地计算机上运行正常。但是,如果我尝试从远程计算机连接到它,则只有当我通过逗号明确设置端口号(例如FooServer\Apple,1433
)时,连接才会通过。
如果不指定端口号,我会得到以下信息:
------------------------------
Cannot connect to FooServer\Apple.
------------------------------
ADDITIONAL INFORMATION:
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)
所以我想知道是否有办法能够使用别名连接到 SQL 实例而无需明确设置端口?
答案1
如果您需要别名在远程计算机上工作,则也需要在远程计算机上设置别名。在我看来,在大多数情况下,使用 DNS 别名比使用 SQL Server 别名更好。
如果端口号困扰着您,并且想知道创建别名的原因,那么您可以采取一些措施。
- 将端口更改为 1433 并仅使用机器名称
- 使用具有 DNS 别名的网络负载均衡器进行重新指向
- 在每台机器上使用 SQL 别名
在您的信息中,即使它是一个命名实例,端口也设置为 1433 - 那么为什么它不起作用?这是因为当您以 Machine\Instance 的形式提供连接字符串时,驱动程序将尝试联系浏览器服务以查找端口号。由于您使用的是 1433 的默认部分,因此无需提供实例名称 - 连接到FooServer
就足够了。