【发布时间】:2019-12-06 02:15:01
【问题描述】:
我有 Spring Boot 应用程序,我想部署 Heroku。但是我在谷歌云上的数据库。 当我部署到本地 tomcat 服务器时,应用程序连接到数据库,但 Heroku 无法连接到数据库。
- 我的数据源是正确的,因为我从本地应用程序连接到数据库。
1) 本地应用程序连接,因为我使用“gcloud auth application-default login”命令和“./mvnw -DskipTests spring-boot:run”,因此我连接到谷歌云 mysql 数据库。
2) 当我为我的 sql 连接向 google 提供我的 ip 时,应用程序连接但 heroku 没有。在这种情况下,我需要我的 heroku 应用程序的 ip。
Caused by: java.lang.RuntimeException: Unable to obtain credentials to communicate with the Cloud SQL API
at com.google.cloud.sql.mysql.SslSocketFactory$ApplicationDefaultCredentialFactory.create(SslSocketFactory.java:548)
at com.google.cloud.sql.mysql.SslSocketFactory.getInstance(SslSocketFactory.java:141)
at com.google.cloud.sql.mysql.SocketFactory.connect(SocketFactory.java:47)
at com.mysql.jdbc.SocketFactoryWrapper.connect(SocketFactoryWrapper.java:57)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
at com.mysql.cj.NativeSession.connect(NativeSession.java:152)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
... 82 common frames omitted
【问题讨论】:
标签: java spring-boot heroku google-cloud-platform google-cloud-sql