我无法将Spring Boot + Spring Data应用程序部署到Google App Engine,并让应用程序连接到Google CloudSql(MySQL)数据库。GAE上的Spring Boot + Spring Data with CloudSql - 数据库连接
GAE应用程序和CloudSql实例在同一个项目中。
我能够运行整个应用程序,并从本地连接到CloudSql没有问题。
没有数据库连接的Spring Boot在GAE上没有错误地正常工作。添加Spring数据会抛出“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>
而且,我已经试过只使用MySQL的依赖性:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
在我的研究,我没有发现什么好的Spring Boot + Spring Data + GAE + CloudSql的示例或相关问题。
连接到application.properties文件中的CloudSql数据库的正确设置是什么?我试过以下,但都吐出各种错误:
spring.jpa.hibernate.ddl-auto:none
# tried with GoogleDriver and without:
# spring.datasource.driver-class-name=com.mysql.jdbc.GoogleDriver
# urls configs attempted:
# spring.datasource.url=jdbc:mysql://google/**db-name**?cloudSqlInstance=***instance-name***b&socketFactory=com.google.cloud.sql.mysql.SocketFactory
# spring.datasource.url=jdbc:mysql://***instance-name***/**db-name**?user=root
# spring.datasource.url=jdbc:mysql://localhost:3306/**db-name**
spring.datasource.url=jdbc:mysql://127.0.0.1:3306:3306/**db-name**
# spring.datasource.url=jdbc:mysql://***mysql ip address***:3306/**db-name**
spring.datasource.username=***user***
spring.datasource.password=***password***
我有完全相同的问题。一直在看这个年龄。你有没有找到解决办法? – Stevo
仍然是我的一个问题。我发现了我订阅的这个问题:https://github.com/spring-cloud/spring-cloud-connectors/issues/191 – Rayquan