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

{“ name”:“ SequelizeConnectionError”,“ parent”:{“ errno”:“ ENOENT”,“ code”:“ ENOENT”,“ syscall”:“ connect”,“ address”:“ / cloudsql / phrasal-charger- 215107:asia-south1:newdish123“,”致命“:true},”原始“:{” errno“:” ENOENT“,”代码“:” ENOENT“,” syscall“:”连接“,”地址“:” / cloudsql / phrasal-charger-215107:asia-south1:newdish123“,”致命“:true}}


  序列化选项集:-


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'放入主机中不起作用。

当我将公共ip地址放在CloudSQL提供的主机中并将我的ip与GCP设置为授权ip时,sequelize可以完美运行并按预期执行操作。

最佳答案

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

然后,我为项目启用了SQL Admin,通过运行以下命令创建了一个新的配置文件

gcloud init


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

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

gcloud app deploy


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

Node.JS on Google App Enging with Cloud SQLError: connect ENOENT /cloudsql/

10-06 02:25