AWS Glue 中的 SQL Server 命名实例连接字符串

Mat*_*ira 1 sql-server connection-string jdbc aws-glue

我研究了一段时间,但没有找到解决这个特定问题的任何内容:

我正在尝试在 AWS Glue 中与命名实例 SQL Server(本地)创建连接

我尝试了很多连接字符串格式的变体,但没有一个有效。例如:

  • jdbc:sqlserver://HOST\INSTANCE_NAME;databaseName=DB_NAME- AWS 控制台不允许我保存,因为它没有端口 (:port)
  • jdbc:sqlserver://HOST\INSTANCE_NAME:1433;databaseName=DB_NAME- AWS 控制台允许我保存,但无法连接,因为它转义了反斜杠后面的所有内容
  • jdbc:sqlserver://HOST\\INSTANCE_NAME:1433;databaseName=DB_NAME- 使用两个反斜杠解决了之前的问题,但现在AWS认为该端口是实例名称的一部分,因此无法连接
  • jdbc:sqlserver://;instanceName=INSTANCE_NAME;serverName=HOST:PORT;databaseName=DB_NAME- 我真的认为这会起作用,因为AWS认识到我正在尝试连接到命名实例,但它不理解主机:端口(它认为它是IPV6地址)

我尝试了更多的变化,但你明白了。

我相信这是关于 AWS Glue 如何在内部分解连接字符串的一个特殊问题

非常感谢任何关于查找 AWS Glue 理解的工作连接字符串(带有命名实例)的帮助。

Dan*_*man 5

您可以在连接字符串中指定端口号而不是实例名称。

命名实例通常配置为侦听 1433 以外的端口,因此您需要确定实例在连接字符串规范中列出的实际端口号。该端口列在服务器配置管理器的“SQL Server 网络配置-->协议-->TCP/IP-->IP 地址”下。该端口号也列在 SQL Server 错误日志“服务器正在侦听...”消息中。

仅包含非默认端口号的示例连接字符串:

 jdbc:sqlserver://HOST:12345;databaseName=DB_NAME
Run Code Online (Sandbox Code Playgroud)