错误编号:“ ETIMEDOUT”,将gcloud mysql与Sails js连接时

问题描述

[![在此处输入图片描述] [1]] [1]

我已经在gCloud中部署了节点sailsjs应用程序,并在gCloud中创建了mysql实例,但是我遇到了mysql连接错误。我已经在数据存储区对象到生产文件中的以下配置中进行了配置:

default: {
      adapter: 'sails-mysql',host: 'xx.xxx.xxx.xxx',user:'root',password:'xxxx',database:'xxxx',port: 3306
}

但是我每次都会收到此错误:

错误:连接ETIMEDOUT [1]:https://i.stack.imgur.com/UOTeY.png

解决方法

根据错误消息看来,sails js应用未到达Cloud SQL服务器。

之所以会发生这种情况,是因为在Cloud SQL实例的授权网络上不允许使用客户端计算机的公用IP。

https://cloud.google.com/sql/docs/mysql/authorize-networks

  1. 转到Google Cloud Console中的Cloud SQL实例页面。

  2. 单击实例名称以打开其“实例详细信息”页面。

  3. 选择“连接”选项卡。

  4. 点击添加网络。

  5. 在“网络”字段中,输入要允许其连接的IP地址或地址范围。 ...

  6. (可选)输入该条目的名称。

  7. 单击完成。

“如果您在Sails应用程序与MySQL交互时发现遇到“握手不活动超时”错误,则可以使用connectTimeout选项增加超时。通常仅在查询与计算并行运行时才需要昂贵的操作(例如,在开发过程中编译客户端打字稿文件或运行Webpack)。”

https://sailsjs.com/documentation/concepts/extending-sails/adapters/available-adapters

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...