我无法将 Spring Boot + Spring Data 应用程序部署到 Google App Engine 并使该应用程序连接到 Google CloudSql (MySQL) 数据库。
GAE 应用程序和 CloudSql 实例位于同一项目中。
我可以运行整个应用程序并从本地主机连接到 CloudSql,没有任何问题。
没有数据库连接的 Spring Boot 在 GAE 上可以正常工作,不会出现错误。添加 Spring Data 会引发“com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败”错误。
在 pom.xml 中我包含了:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory</artifactId>
<version>1.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
另外,我尝试仅使用 mysql 依赖项:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在我的研究中,我没有发现任何关于 Spring Boot + Spring Data + GAE + CloudSql 的好的例子或相关问题。
application.properties 文件中连接到 CloudSql DB 的正确设置是什么?我尝试了以下方法,但都抛出了各种错误:
spring.jpa.hibernate.ddl-auto:none
# tried with GoogleDriver and without:
# spring.datasource.driver-class-name=com.mysql.jdbc.GoogleDriver
# urls configs attempted: …Run Code Online (Sandbox Code Playgroud) google-app-engine spring spring-data google-cloud-sql spring-boot