本地外部数据源到本地数据库环境

Local External Data Source into Local DB Environment

我一直在尝试使用 SQL Server 2019 在 SSMS v18.11.1 中本地创建外部数据源。

我启用了 PolyBase,主密钥和凭证也已创建。

Azure 代码(有效):

CREATE EXTERNAL DATA SOURCE [MasterDataSource]
WITH (
      TYPE = RDBMS,
      LOCATION = N'{location}.database.windows.net',
      DATABASE_NAME = N'{DatabaseName}',
      CREDENTIAL = [MasterDbCred]
     );

本地(不工作):

CREATE EXTERNAL DATA SOURCE SQLServerInstance2
WITH (
      LOCATION = 'sqlserver://{HostName}:1433' ,
      CREDENTIAL = MasterDbCred
     )

我正在使用 SELECT HOST_NAME() 获取主机名。

当运行上面的本地脚本不管LOCATION使用什么,我得到:

OLE DB provider "MSOLEDBSQL" for linked server "(null)" returned message "Login timeout expired".

OLE DB provider "MSOLEDBSQL" for linked server "(null)" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".

这表明它没有连接到本地。

其他外部数据源工作,例如,我有一个 BLOB_STORAGE 在本地工作,但这是到外部位置。

CREATE EXTERNAL DATA SOURCE [external_data]
WITH (
      TYPE = BLOB_STORAGE,
      LOCATION = N'https://storage.blob.core.windows.net/datacontainer'
     );

如有任何帮助,我们将不胜感激。

看起来像是正常的连接故障排除。

使用 SQL 服务器配置管理器验证目标实例已启用 TCP/IP,您可以使用 test-netconnection.

连接到其侦听端口

记住 SQL Server Developer 和 Express Edition 默认禁用 TCP/IP。