gpt4 book ai didi

java - Google Cloud SQL JDBC 套接字工厂 UnknownHostException : google

转载 作者:行者123 更新时间:2023-12-02 01:58:01 24 4
gpt4 key购买 nike

我想使用 JDBC Socket Factory 从 Kubernetes 容器中运行的 Spring 4 Maven 应用程序连接到 Google Cloud SQL 数据库。

pom.xml 具有:

<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.4-702.jdbc4</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>postgres-socket-factory</artifactId>
<version>1.0.14</version>
</dependency>

在applicationContext.xml中:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
<property name="driverClassName" value="org.postgresql.Driver"></property>
<property name="url" value="jdbc:postgresql://google/mydb?cloudSqlInstance=myinstance&amp;socketFactory=com.google.cloud.sql.postgres.SocketFactory;"></property>
<property name="username" value="postgres"></property>
<property name="password" value="passwd"></property>
</bean>

我有 GOOGLE_APPLICATION_CREDENTIALS 环境变量,其中包含用于访问云 SQL 的服务帐户详细信息。

但我遇到以下异常:

Caused by: org.hibernate.exception.JDBCConnectionException: Could not open connection
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1395)
at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59)
... 100 common frames omitted
Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:150)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:393)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:154)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
... 105 common frames omitted
Caused by: java.net.UnknownHostException: google
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at org.postgresql.core.PGStream.<init>(PGStream.java:62)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)

这里可能缺少什么?

最佳答案

使用 Kubernetes 和 Google Cloud SQL 时,您必须使用 private IP address or the Cloud SQL Proxy Docker image

关于java - Google Cloud SQL JDBC 套接字工厂 UnknownHostException : google,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57389020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com