1

Je ne parviens pas à déployer une application Spring Boot + Spring Data sur Google App Engine et à connecter l'application à une base de données Google CloudSql (MySQL).Spring Boot + Données Spring sur GAE avec CloudSql - Connexion à la base de données

L'application GAE et l'instance CloudSql se trouvent dans le même projet.

Je suis capable d'exécuter l'application entière et de me connecter à CloudSql depuis localhost sans problème.

Spring Boot sans connexion à la base de données fonctionne correctement sans erreur sur GAE. L'ajout de données de printemps déclenche une erreur "com.mysql.cj.jdbc.exceptions.CommunicationsException: échec de liaison de communication".

Dans le pom.xml j'ai inclus:

<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> 

Aussi, j'ai essayé d'utiliser uniquement la dépendance mysql:

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>6.0.6</version> 
</dependency> 

Dans mes recherches, je ne l'ai pas trouvé de bon des exemples ou des problèmes liés à Spring Boot + Spring Data + GAE + CloudSql.

Quels sont les paramètres corrects pour se connecter à une base de données CloudSql dans le fichier application.properties? Je l'ai essayé ce qui suit, mais tous ont jeté diverses erreurs:

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

J'ai exactement le même problème. Je l'ai regardé pendant des siècles. Avez-vous trouvé une solution? – Stevo

+0

Encore un problème pour moi. J'ai trouvé ce numéro, auquel je suis abonné: https://github.com/spring-cloud/spring-cloud-connectors/issues/191 – Rayquan

Répondre

1

J'ai eu le même problème, au-dessous des propriétés dans application.properties de démarrage de printemps a fonctionné pour moi.

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