当我尝试使用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/