当前位置: 首页 > 知识库问答 >
问题:

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

咸琪
2023-03-14

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

GCLOUD:java.sql.SQLNon瞬态连接异常:无法连接到MySQL服务器在localhost: 3,306。GCLOUD:确保有一个MySQL服务器运行在您试图连接到的机器/端口上,并且运行此软件的机器能够连接到此主机/端口(即没有防火墙)。还要确保服务器尚未使用--skip-network标志启动。

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”角色和其他在app engine中进行的设置,如此处所示。我错过什么了吗?

共有1个答案

楚宇
2023-03-14

我遇到了同样的事情,并且(几个头痛之后)遇到了一个适合我的解决方案。它归结为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

 类似资料:
  • 有人知道我们如何使用超过12个并发连接从App Engine到Cloud SQL吗? 我们发现留档说:“在标准环境中运行的每个App Engine实例与Google CloudSQL实例的并发连接不能超过12个。” 我们正在使用 Java for App Engine 使用 Hibernate...连接池指出它不应该在生产环境中使用,但如果我们禁用池,我们将达到最大连接数。

  • 当尝试连接到谷歌云SQL我得到以下错误: 我已经花了几个小时试图解决这个问题,但还是一无所获。 我的配置如下(在ZF2-config-local.php中): 我还将我的Google App Engine应用程序的应用程序ID添加到Cloud SQL中的访问控制列表(授权应用程序引擎应用程序)中。 当我尝试运行这个时: 我得到了unix套接字错误。我错过了什么?

  • 我正在将一个非常基本的web应用程序部署到Google应用程序引擎。我使用的是Springboot,我可以在本地很好地运行应用程序,但当我部署到Google时,应用程序引擎不会启动实例。我在启动时配置了一个云SQL数据源。 我有云sql配置属性配置src/main/Resources/application.properties.App Engine似乎找不到这些属性,所以它无法正确设置Cloud

  • 我正在尝试使用云SQL代理将GCE实例连接到云SQL实例(第二代)。当我ssh到GCE实例时 我得到 我已阅读 上的文档https://cloud.google.com/sql/docs/compute-engine-access#gce-连接代理和 https://cloud.google.com/sql/docs/sql-proxy 两个实例都在同一个项目中,并且云SQL API在GCE实例(

  • 我正在appengine虚拟机上开发一个Flask应用程序。我想上传文件到谷歌云存储,所以我使用连接到云存储。仅在VM中测试时,我的应用程序运行正常,没有错误。但是,在我使用部署并在部署的应用程序上测试上载功能后,它失败并返回错误。日志显示了回溯,这是由于连接到云存储的代码行: 具体错误是

  • 我无法通过计算引擎连接到数据库。 到目前为止我所做的事情: 设置我的计算引擎 将我的计算引擎连接到我的云SQL 在我的计算引擎上安装并运行Cloud Proxy 在我的libs文件夹中包含JDBC Jar文件 创建了JDBC连接字符串 "jdbc: mysql:///? cloud dSqlInstance= -实现文件树(目录:“libs”,包括:[“*.jar”) -实现“com”。谷歌。云s