与云sql连接的应用程序引擎中的Spring boot

问题描述 投票:0回答:1

尝试将部署在App Engine标准环境中的Spring Boot应用程序与云MySql连接会引发以下错误。

GCLOUD:java.sql.SQLNonTransientConnectionException:无法连接到本地主机上的MySQL服务器:3,306。GCLOUD:确保您要连接的机器/端口上有一个MySQL服务器正在运行,并且该软件正在其上运行的计算机能够连接到该主机/端口(即没有防火墙)。另外,请确保尚未使用--skip-networking标志启动服务器。

config.setDriverClassName("com.mysql.cj.jdbc.Driver");
config.setJdbcUrl(String.format("jdbc:mysql:///%s", DB_NAME));
config.setUsername(USER_NAME);
config.setPassword(USER_PW);
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.mysql.socket.factory.connector.j.8");
String CLOUD_SQL_CONNECTION_NAME = "PROJECTID:REGION:DB_INSTANCE";
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);

'IAM'角色和在应用程序引擎中进行的其他设置,如建议的here。我想念什么吗?

spring-boot google-app-engine google-cloud-sql
1个回答
0
投票

我遇到了同样的事情,(后来又头疼了)遇到了一个对我有用的解决方案。归结为pom.xml(对于maven)中所述的依赖项。

我正在使用:

<dependency>
    <groupId>com.google.api-client</groupId>
    <artifactId>google-api-client</artifactId>
    <version>1.22.0</version>
</dependency>

我想我是从其他教程中学到的。

相反,将其替换为以下内容可解决此问题:

<dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>mysql-socket-factory</artifactId>
    <version>1.0.16</version>
</dependency>

我通过教程视频发现了这一点(本身很有帮助):https://www.youtube.com/watch?v=mAhah-vq0Iw

© www.soinside.com 2019 - 2024. All rights reserved.