我正在尝试为我的应用程序运行测试,但我一直遇到这两个错误:
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。
谢谢。
答案 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。