我在 appengine 上部署了一个基本的 java 网络应用程序,它应该连接到 Cloud SQL 上的 postgresql 实例(在本地运行)。 部署后它(错误地?)在我浏览试图连接到数据库的页面时引发此异常:
org.postgresql.Driver connect: Unexpected connection error: (Driver.java:271) java.lang.RuntimeException: The Google Cloud SQL API is not enabled for project [ad*****manager-XXXXXXX]. Please use the Google Developers Console to enable it: https://console.cloud.google.com/apis/api/sqladmin/overview?project=ad*****manager-XXXXXXX
- 我已经检查过 Google Cloud SQL API 已启用,如您所见 that screenshot
- 我已在托管实例的项目上向我的应用程序授予云 sql 编辑器权限(请注意,postgresql 实例和 Web 应用程序位于两个单独的项目中。)
- 这是一个弹性环境应用
这是失败的代码部分:
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection(dburl, dbuser, dbpwd);
以及连接地址:
jdbc:postgresql://google/name_of_my_database?useSSL=false&socketFactoryArg=ad*****manager-XXXXXXX:europe-west1:XXXX-pgdb-preprod&socketFactory=com.google.cloud.sql.postgres.SocketFactory
最佳答案
实际上,我必须启用 SQL API,而不是像错误消息中所述那样在托管数据库的项目中启用 SQL API,而是在托管应用程序的项目中启用 SQL API
为此,进入 API 部分,选择库并搜索 SQL API(见下面的屏幕截图)
关于java - 连接到 Cloud SQL : The Google Cloud SQL API is not enabled for project 上的 postgresql 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48025804/