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 
相關問題