mysql - 从 Google AppEngine Standard 连接到 Google Cloud SQL 实例时出错(使用 NodeJS)

标签 mysql node.js cloud google-cloud-sql

我创建了一个连接到 Google Cloud SQL 的小型 NodeJS REST API。使用 Google AppEngine 灵活的环境它可以工作,但是当我尝试使用标准环境时 Google Cloud SQL 连接被拒绝。

我尝试使用内部 IP 以及 socketPath 进行连接。

我创建了一个存储库来展示错误:https://github.com/cbullokles/appengine-error

根据文档,我希望在这两种情况下都能连接到 MySQL,但它没有按预期工作。这是一个未记录的限制吗?或者我没有正确阅读 AppEngine 文档。

最佳答案

通往connect to Cloud SQL instances from App Engine Standard的路正在使用 Unix 域套接字连接到提供 App Engine 标准环境的 Cloud SQL 实例。

如果您使用 Node.js mysql以这种方式打包配置以在 App Engine 中运行:

const db = mysql.createConnection ({
    socketPath: '/cloudsql/<PROJECT_NAME>:<REGION_NAME>:<INSTANCE_NAME>',
    user: 'user',
    password: '1234',
    database: 'yourDatabase'
});

<PROJECT_ID>:<REGION>:<INSTANCE_ID>是每个 Cloud SQL 实例的唯一字符串。它列在您实例的实例详细信息页面实例连接名称下,或在connectionName下使用 gcloud sql instances describe <INSTANCE_ID> 时命令。

此外,Node.js 的 App Engine 标准官方文档有一些 code samples使用 knex 进行连接图书馆。

关于mysql - 从 Google AppEngine Standard 连接到 Google Cloud SQL 实例时出错(使用 NodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55802932/

相关文章:

javascript - Parse.com 云代码 - 无法弄清楚为什么 javascript 变量在所有数组项中具有相同的值

cloud - 什么是云计算对象存储

mysql - 选择前触发

mysql - 显示列中字符串值的一部分的 SQL 查询

node.js - Webstorm 意外 token 导出

java - 如何在 S3 中同时读写文件?

php - 了解 PDO 准备语句和绑定(bind)参数

php - 有什么办法可以最大限度地减少这段代码的 Mysql 数据库访问吗?

javascript - 在创建钩子(Hook)后更新 sailsjs 模型中的未定义

javascript - 如何在 MongoDB 中使用集合?