[英]Google APP Engine and cloud sql :: Unable to connect Spring boot app in Google cloud sql (my sql)
[英]Spring Boot application cannot connect to Google Cloud SQL
我無法將Spring Boot應用程序連接到Cloud MySQL。 我在App Engine中部署了應用程序,但未連接到Cloud SQL的網站運行正常。 每當我的應用程序嘗試連接到雲時,都會出現錯誤。 我已經遵循https://cloud.google.com/appengine/docs/flexible/java/using-cloud-sql?hl=it的靈活和標准環境的指南,但它似乎無法正常工作。 我嘗試了遵循寵物診所的教程,但沒有成功。 我將以下依賴項放在文件pom.xml中:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory-connector-j-6</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
我的application.properties中包含以下項目:
spring.jpa.database=MYSQL
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://google/DATABASENAME?cloudSqlInstance=PROJECTID:REGION:INSTANCE&socketFactory=com.google.cloud.sql.mysql.SocketFactory
spring.datasource.username=USER
spring.datasource.password=*********
當我嘗試打開嘗試連接數據庫的網站時遇到的錯誤是:發生意外錯誤(類型=內部服務器錯誤,狀態= 500)。 無法打開JPA EntityManager進行交易; 嵌套異常是javax.persistence.PersistenceException:org.hibernate.exception.JDBCConnectionException:無法獲取JDBC連接
我需要做什么才能連接到Google Cloud?
嘗試在同一屬性上使用用戶名和密碼
spring.datasource.url=jdbc:mysql://google/DATABASE?cloudSqlInstance=INTANCE_NAME&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=USERNAME_HERE&password=PASSWORD_HERE
spring.jpa.hibernate.ddl-auto=none
spring.datasource.username=USERNAME_HERE
spring.datasource.password=PASSWORD_HERE
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database=MYSQL
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
然后確保您具有這些依賴項
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.22.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory</artifactId>
<version>1.0.5</version>
</dependency>
請記住為您的項目啟用Google Cloud SQL API
這在標准環境下對我有效。 我使用接下來的說明使我的項目與標准https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/appengine-standard-java8/springboot-appengine-standard兼容
我還沒有測試過好運嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.