我在 AWS 实例上安装了所有依赖项,没有明显的问题。但是,每次我尝试启动该应用程序时,都会收到以下错误。
error: AdapterError: Connection is already registered
我还没有设法在实例上成功提升帆,并且 sails-mysql 是新安装的,因此不应注册任何连接。
我已采取以下步骤来部署我的应用程序。
- 设置 MySql RDS 实例(欧洲西部(
- 创建并设置 Ubuntu AMD-64 t2.micro EC2 实例(EU-West(
- 安装了所有先决条件(Git,NVM,NodeJs,Sails等(
- 克隆了我的帆项目
- 已安装的 Sails 依赖项
- 已正确配置 Sails 的连接设置以使用我的 RDS 实例。
我知道我的连接设置是正确的,因为我已经能够在连接到我的 RDS 实例的本地计算机上运行 Sails,并且它会始终提升而不会出现任何问题。
我还能够使用 SequelPro 连接到我的 RDS 实例,没有问题。
我过去遇到过依赖项问题,但设法解决了这些问题,并且我的本地机器或 EC2 实例上没有任何问题。
搜索了一段时间后,我遇到了一些用户,他们遇到了类似的问题,但设法使用 Waterline 的拆解方法修复了它们,但是,我不确定如何实现这一目标。
我已经尽力提供尽可能多的信息,任何帮助将不胜感激。
帆版本:0.12.11
提前谢谢你。
我设法通过执行以下操作来解决此问题:
-
在
环境config/bootstrap.js
年将我的环境切换到生产 -
在
connections.js
中添加connectTimeout: 20000
以确保请求在建立连接之前不会超时。例如。
process.env.NODE_ENV = 'development'
- 确保 RDS 的安全组入站规则允许来自与我的 EC2 实例关联的安全组的连接。
类型:MySQL/Aurora
协议:技术合作计划
端口范围:3306
来源: <安全组 ID=">安全组>
遵循上述几点也意味着我在与 RDS 通信时克服了握手超时的问题。