Mysql 从App Engine连接到Google Cloud SQL时发生异常
我正在尝试在Google app Engine上部署我的Node.js应用程序,它部署得很好,但由于某些原因它无法连接到Google Cloud SQL。下面是它抛出的内容:Mysql 从App Engine连接到Google Cloud SQL时发生异常,mysql,node.js,google-app-engine,Mysql,Node.js,Google App Engine,我正在尝试在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 = {
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
}
我正在使用节点mysql
模块连接到数据库
应用程序引擎和云SQL已经在同一个项目中。
我的理论是,应用程序引擎和云SQL必须位于同一个项目和同一个区域,但我不确定。在启动过程中,使用以下方法检查日志是否存在任何错误:
gcloud应用程序记录tail-s默认值
您可能尚未为您的项目启用云SQL API:请确保在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
参考:显然,你做事的顺序很重要
当我执行
deploy->create databases->enable sqlipi
时,我得到了enoint错误我不知道刚才发生了什么,但事情本身就解决了。我想这与Google App Engine的Node.js支持仍处于测试阶段有关。在调试或类似的过程中,你有没有可能从你的socketPath中删除了领先的/
。它起作用了,但现在突然之间就不起作用了。当我将应用程序引擎的实例ip添加到允许的云sql网络时,它可以工作。应用程序引擎和云SQL在同一个项目中。@jimmy,嘿,你是怎么做到的?谢谢@LeDinhNhatKhanh也许这有帮助:我忘了我做了什么,但由于不启用云SQL API是最可能的问题,这里有10点。这是我遇到的问题。我发现很难相信Google Cloud文档中没有提到你必须先打开Cloud SQL API,然后使用beta_设置部署你的应用程序:Cloud_SQL_实例:Google在concole中的日志告诉你,如果配置正确,你必须激活SQL Admin API,而文档没有。。。但您没有说的是,在部署之前必须激活API。如果您看到日志,请在日志条目中给出的URL上激活API,然后重新部署您的应用程序。我确认顺序很重要。日志告诉我必须激活API,但不是必须重新部署应用程序。荣誉