Сбой соединения с JDBC

#sql-server #amazon-web-services #jdbc #etl #aws-glue

#sql-сервер #amazon-веб-сервисы #jdbc #etl #aws-glue

Вопрос:

Я пытаюсь подключить AWS Glue к серверу SQL Azure через JDBC. Я пробовал разные настройки для URL-адреса jdbc, но безуспешно. URL-адрес выглядит следующим образом:

 jdbc:sqlserver://domain.windows.net:1433/database
jdbc:sqlserver://domain.windows.net:1433;databaseName=database
  

В документации AWS синтаксис SQL Server следующий jdbc:sqlserver://host:port;databaseName=db_name

Для целей тестирования я использовал Squirrel SQL и установил с его помощью успешное подключение к моему Azure SQL Server.

Когда я пытаюсь установить тестовое соединение в AWS Glue, AWS CloudWatch выдает мне следующий журнал:

 Attempting to connect with SSL: jdbc:sqlserver://domain.windows.net:1433;database={database}
SSL connection to data store failed. Retrying without SSL.
Check that your connection definition references your JDBC database with correct URL syntax, username, and password. The TCP/IP connection to the host domain.windows.net, port 1433 has failed. Error: "Connection timed out: no further information. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
  

Что мне кажется странным, так это скобки ‘{‘ в соединении. Строка подключения Azure сообщает мне, что само соединение должно выглядеть следующим образом:

 jdbc:sqlserver://domain.windows.net:1433;database=database
  

Возможно, это проблема, но я не уверен, как ее решить.

Ответ №1:

Поскольку вы могли бы успешно подключиться к Azure SQL из squirrel; на стороне Azure все хорошо.

Одной из проблем может быть SSL; Но, скорее всего, это не потому, что повторная попытка без SSL также завершилась неудачей.

В конце соединения; пожалуйста, проверьте, разрешены ли исходящие соединения на этом порту.

Комментарии:

1. Спасибо за ваш ответ, но я уже настроил свое исходящее правило для всего трафика.

Ответ №2:

вы должны установить исходящее и входящее правило группы безопасности, которое вы определили во время подключения к JDBC. установите исходящее правило на весь разрешенный трафик. также разрешен tcp-трафик в вашей базе данных azure.