Knex:Error Pool2 - 错误:分配资源时出错:连接 ECONNREFUSED

Posted

技术标签:

【中文标题】Knex:Error Pool2 - 错误:分配资源时出错:连接 ECONNREFUSED【英文标题】:Knex:Error Pool2 - Error: Error allocating resources: connect ECONNREFUSED 【发布时间】:2015-08-15 01:46:46 【问题描述】:

我在 node.js 项目上使用 bookshelf.js,它在我的本地主机上运行良好。 但是当我尝试将它放在 AWS + RDS 上时,它给了我以下错误:

Express server listening on port 8000
Knex:Error Pool2 - Error: Error allocating resources: connect ECONNREFUSED
Knex:Error Pool2 - Error: Error allocating resources: connect ECONNREFUSED

显然我的连接配置已更改。

module.exports = 
      host     : 'https://my_rds_url:3306',
      user     : 'root',
      database     : 'my_database',
      password : 'my_pw'

会是什么?

谢谢。

【问题讨论】:

【参考方案1】:

在大多数情况下,这是给其他服务器地址而不是“localhost”的问题。 据我了解,您已将代码从您的 PC 移动到远程服务器。诀窍是 node.js 是服务器端,所以对于 node 这段代码仍然是 localhost(不是远程)

尝试将“https://my_rds_url:3306”改为“localhost:3306”。

【讨论】:

【参考方案2】:

您需要验证您的客户端是否有权访问 sql 服务器。 使用 mysql Workbench \ adminer.php 或任何其他客户端测试远程连接,将其安装在您的客户端上并尝试连接。

如果失败,您需要设置您的 sql server 以允许远程连接。只需考虑安全问题。

哦,我刚刚注意到您将“https”设置为主机,将其更改为:

host     : 'my_rds_url:3306',

【讨论】:

以上是关于Knex:Error Pool2 - 错误:分配资源时出错:连接 ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

使用commons.pool2实现mysql连接池

java apache common pool2用法

commons.pool2 对象池的使用

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig(示例代

准备dbcp2-2.1.1和pool2-2.4.2 commons-dbcp-1.4jar包

通过线程池,从hbase中拿数据