在 App Engine 中通过节点 js 使用 Sequelize 连接 GCP Cloud Sql 时出错?

Error Connecting GCP CloudSql using Sequilize through nodejs in app engine?

当我尝试使用 sequilize 将第二代 Cloud mysql 与 App Engine 连接时,出现以下错误:

{"name":"SequelizeConnectionError","parent":{"errno":"ENOENT","code":"ENOENT","syscall":"connect","address":"/cloudsql/phrasal-charger-215107:asia-south1:newdish123","fatal":true},"original" :{"errno":"ENOENT","code":"ENOENT","syscall":"connect","address":/cloudsql/phrasal-charger-215107 :asia-south1:newdish123","fatal":true}}

Sequelize option set:-

const db = new Sequelize(
  config.database.db,
  config.database.username,
  config.database.password,
  {
    host:'localhost',
    dialect: "mysql",
    port: 3306,
    dialectOptions: {
        socketPath: '/cloudsql/phrasal-charger-215107:asia-south1:newdish123'
    }
  }
);

app.yaml

runtime: nodejs
env: flex


beta_settings:
  cloud_sql_instances: phrasal-charger-215107:asia-south1:newdish123

更多信息

我试过将“/cloudsql/phrasal-charger-215107:asia-south1:newdish123”放入主机中,但没有成功。

当我将 public ip 地址放入 CloudSQL 给定的主机中并将我的 ip 与 GCP 设置为授权 ip 时,sequelize 是 运行 并按预期执行操作。

将需要访问云 SQL 的 machines/networks 的 IP 地址手动添加到授权网络部分。

建立连接时检查您的代理服务器

我遇到了完全相同的问题,我的所有代码库根本没有改变。我所做的修复是创建一个新项目,然后在我的新项目中创建新的 App Engine 实例和新的 Cloud SQL 数据库。

然后我为项目启用了 SQL 管理员,通过 运行

创建了一个新的配置文件
gcloud init

并为新项目创建新配置文件。

然后我再次部署了应用程序:

gcloud app deploy

你可以在这里找到我的项目的设置: