问题描述
[![在此处输入图片描述] [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
-
转到Google Cloud Console中的Cloud SQL实例页面。
-
单击实例名称以打开其“实例详细信息”页面。
-
选择“连接”选项卡。
-
点击添加网络。
-
在“网络”字段中,输入要允许其连接的IP地址或地址范围。 ...
-
(可选)输入该条目的名称。
-
单击完成。
“如果您在Sails应用程序与MySQL交互时发现遇到“握手不活动超时”错误,则可以使用connectTimeout选项增加超时。通常仅在查询与计算并行运行时才需要昂贵的操作(例如,在开发过程中编译客户端打字稿文件或运行Webpack)。”
https://sailsjs.com/documentation/concepts/extending-sails/adapters/available-adapters