Rails / PostgreSQL问题:PG :: ConnectionBad:fe_sendauth:未提供密码

时间:2019-09-12 14:09:06

标签: ruby-on-rails postgresql

我正在尝试为我的应用程序运行测试,但我一直遇到这两个错误:

  

PG :: ConnectionBad:fe_sendauth:未提供密码

     

PG :: ConnectionBad:致命:对不起,已经有太多客户了

我已经阅读了所有先前的答案,对于其他所有人来说,似乎都是密码丢失或pg_hba.conf文件配置错误。

这是我的database.yml的样子:

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
  encoding: utf8
  reconnect: true
  host: localhost
  username: postgres
  password: <password>

development:
  <<: *default
  database: <dev-db>
  host: <dev-host>
  username: <dev-user>
  password: <dev-pass>

test:
  <<: *default
  database: <test-db>

我已经检查了pg_hba.conf配置文件,并为列出的所有条目将其配置为md5。

任何提示可能是什么问题?

我正在装有Mojave的Macbook上,在Ruby 2.5.5上运行PostgreSQL 10,Rails 5.2.3。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的postgres用户实际上设置了密码吗?通常,默认的postgres用户没有密码,因此您需要完全避免这种情况。从错误消息来看,听起来您正在使用默认的posgres用户,并且还没有在PostgreSQL CLI中设置密码的方式。

我建议将其简化为非常基本的默认功能配置,例如:

postgres: &postgres
  adapter: postgresql
  encoding: utf8
  pool: 5
development:
  <<: *postgres
  database: project_name_development
test:
  <<: *postgres
  database: project_name_test

然后一次增量地添加回其他配置选项,确认每个选项均有效,然后再添加下一个。取决于您的项目配置和已安装的gem,env vars可能也不适用于database.yml。