当我尝试使用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}}
Sequelize选项集:-
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可以正常运行并按预期执行操作。
答案 0 :(得分:1)
将需要访问Cloud SQL的机器/网络的IP地址手动添加到“授权网络”部分。
还有
建立连接时检查您的代理
答案 1 :(得分:1)
我遇到了完全相同的问题,我的所有代码库都没有改变。我要解决的问题是创建一个新项目,然后在新项目中创建新的App Engine实例和新的Cloud SQL数据库。
然后我为该项目启用了SQL Admin,通过运行来创建新的配置文件
gcloud init
并为新项目创建新的配置文件。
然后我再次部署了该应用程序:
gcloud app deploy
您可以在这里找到我的项目的设置:
Node.JS on Google App Enging with Cloud SQLError: connect ENOENT /cloudsql/