google-app-engine - 仅从产品连接到 Google Cloud SQL(第二代)时通信链接失败

标签 google-app-engine google-cloud-sql

使用谷歌云 sql 设置谷歌云平台应用程序,当我从谷歌服务器运行代码时,我无法连接到数据库。

以下示例:https://cloud.google.com/appengine/docs/java/cloud-sql/?csw=1 我已经正确构建了非生产 url,并且可以使用此 url 毫无问题地连接到云 sql

Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://<ip-address>:3306/<database>?user=root";

所以这一切都很好。这是我为产品连接构建的 url。

Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://<project-id>:<cloud sql instance name>/<database>?user=root";

我从仪表板和实例 ID SQL 实例列表中获得了项目 ID,数据库与非产品值相同,并且由于非产品有效,我相信这没问题

Product and Instance ID locations I pulled them from

全部部署​​后我收到错误消息:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 最后一个数据包成功发送到服务器是在 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。

appengine-web.xml 确实将 use-google-connector-j 设置为 true,我看到对于第二代云 SQL,您不需要在云 SQL 的授权列表中指定您的应用。

任何帮助将不胜感激

最佳答案

https://cloud.google.com/sql/docs/dev-access#gaev1-csqlv2-connect

您应该在实例的“实例详细信息”中查看“实例连接名称”。对于第二代,它是“project-id:region-name:cloud-sql-instance-name”,而不是第一代中的“project-id:cloud-sql-instance-name”。

关于google-app-engine - 仅从产品连接到 Google Cloud SQL(第二代)时通信链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682217/

相关文章:

google-cloud-platform - CloudSQL 实例必须与查询连接位于同一项目中

mysql - 谷歌云SQL备份忽略某些表

mysql - 错误 1114 : table is full when inserting an AUTO_INCREMENT in cloudsql

postgresql - 数据库从 AWS postgres-9.6.6 数据库转储和恢复到 Google Cloud SQL(也是 postgres-9.6)

使用 GAE 和 Google Cloud SQL 的 PhP

java - 删除特定类型的所有实体

python appengine unicodeencodeerror on search api snippeted results

google-app-engine - Google Appengine Datastore 上的层次结构优化

google-app-engine - 基于 GWT 的应用引擎网站的动态站点地图生成

google-app-engine - 向我的 Google App Engine 项目添加子域?