1

我无法将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*** 
+0

我有完全相同的问题。一直在看这个年龄。你有没有找到解决办法? – Stevo

+0

仍然是我的一个问题。我发现了我订阅的这个问题:https://github.com/spring-cloud/spring-cloud-connectors/issues/191 – Rayquan

回答

1

我有同样的问题,下面的属性在春季启动application.properties为我工作。

database=mysql 
spring.datasource.driverClassName=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://google/{db-schema}?socketFactory=com.google.cloud.sql.mysql.SocketFactory&cloudSqlInstance={Cloud-sql-Instance-Name} 

spring.datasource.username=root 
spring.datasource.password=password 
相关问题