Spring引导与云sql的应用程序内引擎连接



试图将部署在应用程序引擎标准环境中的spring-boot应用程序与云MySql连接,会引发以下错误。

GCLOUD:java.sql.SQLNonTransientConnectionException:无法连接到localhost:3306上的MySQL服务器。GCLOUD:确保在您尝试连接的机器/端口上运行MySQL服务器,并且运行该软件的机器能够连接到此主机/端口(即未防火墙(。还要确保服务器没有使用--skip网络标志启动。

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"角色和其他设置。我是不是错过了什么?

我遇到了同样的事情,(后来遇到了一些令人头疼的问题(找到了一个适合我的解决方案。它归结为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

相关内容

  • 没有找到相关文章

最新更新