Не удается подключиться к облачному SQL с помощью библиотеки Java SocketFactory - PullRequest
0 голосов
/ 14 ноября 2018

Это повторяющийся вопрос, который я задал на облачном форуме по обсуждению Google google group: https://groups.google.com/forum/#!topic/google-cloud-sql-discuss/qYmjvfH0MdI

Я использую Cloud Dataflow для запуска некоторых конвейеров, используя Cloud SQL в качестве приемника в моей личной учетной записи. После выполнения конвейера я хочу установить соединение с Cloud SQL, чтобы выполнить оператор удаления. Я не могу запустить удаление с помощью JdbcIO (только выбирает и вставляет). Хотя я могу подключиться к облачному SQL с помощью JdbcIO, я не могу подключиться к нему с помощью простого Jdbc.

Ниже приведен код, который я использую для подключения к своему экземпляру

static void cleanUpPipeline() {
    String jdbcUrl = String.format(
            "jdbc:postgresql://google/%s?cloudSqlInstance=%s"
                + "&socketFactory=com.google.cloud.sql.postgres.SocketFactory",
            "xxxxxx",
            "xxxxxx");

    try {
        Class.forName("org.postgresql.Driver");
        Connection connection = DriverManager.getConnection(jdbcUrl, "xxxxxx", "xxxxxx");
    } catch (SQLException | ClassNotFoundException e) {
        e.printStackTrace();
    }
}

Мой pom.xml имеет следующие зависимости:

<dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>postgres-socket-factory</artifactId>
    <version>1.0.11</version>
</dependency>

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.5</version>
</dependency>

Я получаю ошибку:

ИНФОРМАЦИЯ: Подключение к экземпляру Cloud SQL [xxxxxxxxx] через сокет ssl. ноябрь 13, 2018 14:53:49 com.google.cloud.sql.core.SslSocketFactory деЫпзЬапсе

ИНФОРМАЦИЯ: Первое облачное SQL-соединение, генерирующее пару ключей RSA. 13 ноября, 2018 2:53:51 вечера com.google.cloud.sql.core.SslSocketFactory fetchInstanceSslInfo

ИНФОРМАЦИЯ: Получение эфемерного сертификата для экземпляра Cloud SQL [xxxxxx]. 13 ноября 2018 2:53:54 com.google.cloud.sql.core.SslSocketFactory createAndConfigureSocket

ИНФОРМАЦИЯ: Подключение к облачному экземпляру SQL [xxxxxxxx] по IP [xxxxxxx] org.postgresql.util.PSQLException: подключение к Google: 5432 отказано. Убедитесь, что имя хоста и порт верны и что почтмейстер принимает соединения TCP / IP.

Я верю, что все делаю прямо здесь. Может кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 21 ноября 2018

В конце концов, это была проблема с брандмауэром.Я не смог получить доступ к порту 3307 изнутри брандмауэра, который использует порт Cloud SQL Proxy.Я считаю, что библиотека Java SocketFactory также должна использовать этот порт.

...