无法从 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 不再需要那个文件 --


LEATH
浏览 175回答 2
2回答

HUH函数

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

慕标5832272

项目间 Cloud SQL 通信需要做两件事:包含 Cloud SQL 实例的项目必须启用 Cloud SQL Admin API要访问它的项目必须在包含 Cloud SQL 实例 ( source )的项目上具有适当的 Cloud SQL IAM 角色:不同项目中的 App Engine 和 Cloud SQL对于不同项目中的 App Engine 应用程序和 Cloud SQL 实例,您必须授予默认的 appengine 服务帐号([PROJECT-ID]@appspot.gserviceaccount.com)以下 IAM 角色之一:云 SQL 客户端Cloud SQL 编辑器云 SQL 管理员
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java