Это повторяющийся вопрос, который я задал на облачном форуме по обсуждению 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.
Я верю, что все делаю прямо здесь. Может кто-нибудь мне помочь?