首页 > 解决方案 > 无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL

问题描述

这是引发的异常:

javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

我稍后也会在堆栈跟踪中收到此消息:

Caused by: java.lang.RuntimeException: The Google Cloud SQL API is not enabled for project [xxxxxx]. Please use the Google Developers Console to enable it: https://console.cloud.google.com/apis/api/sqladmin/overview?project=xxxxxx

当我单击控制台链接时,我可以看到 Cloud SQL Api 已启用,并且当数据库位于同一项目上时,代码运行良好。我还在项目中添加了具有角色的 AppEngine 灵活服务帐户,该帐户包含具有App Engine flexible environment Service Agent角色的 Cloud SQL 数据库Cloud SQL Client

接下来我应该尝试什么?谢谢

更新

pom.xml:

-- update2 不再需要那个文件 --

标签: javagoogle-app-enginegoogle-cloud-platformgoogle-cloud-sqlapp-engine-flexible

解决方案


在其他项目中访问 Cloud SQL 实例时,请务必在源项目中启用 Cloud SQL Admin API。复制错误消息中的链接并将项目 id 替换为另一个项目 id。当前消息具有误导性,因为它当前假定实例位于同一项目中。


推荐阅读