我正在尝试在Google App Engine上部署我的Node.js应用程序并且部署得很好,但由于某种原因它无法连接到Google Cloud SQL。这是它抛出的东西:
Error: connect ENOENT /cloudsql/my-project-id:asia-east1:my-sql-instance
以下是我配置连接的方式:
if (process.env.INSTANCE_CONNECTION_NAME) {
exports.mysqlConfig = {
user: process.env.GCLOUD_SQL_USERNAME,
password: process.env.GCLOUD_SQL_PASSWORD,
socketPath: '/cloudsql/' + process.env.INSTANCE_CONNECTION_NAME
}
} else {
// Use settings for localhost
}
我正在使用node-mysql
模块连接到数据库。
App Engine和Cloud SQL已经在同一个项目中。 我的理论是,App Engine和Cloud SQL必须位于同一个项目和相同的区域,但我不确定。
答案 0 :(得分:15)
使用以下命令检查日志中的任何错误:
以下cmd gcloud app logs tail -s default
或
您可能没有为项目启用Cloud SQL API:https://console.developers.google.com/apis/api/sqladmin/overview
答案 1 :(得分:5)
确保您在app.yaml
中添加了以下设置beta_settings:
# The connection name of your instance, available by using
# 'gcloud beta sql instances describe [INSTANCE_NAME]' or from
# the Instance details page in the Google Cloud Platform Console.
cloud_sql_instances: YOUR_INSTANCE_CONNECTION_NAME
REF:https://cloud.google.com/appengine/docs/flexible/nodejs/using-cloud-sql-postgres
答案 2 :(得分:1)
显然你做事的顺序很重要......
当我deploy -> create databases -> enable sql ipi
时,我收到了ENOENT错误