Rails无法登录postgresql - PG ::错误 - 密码 - 正确的信息

Tyl*_*ham 14 ruby database postgresql ruby-on-rails

这就是我的database.yml文件的外观(显然还有相关的测试和生产条目)

development:
  adapter: postgresql
  encoding: unicode
  database: dbname_dev
  pool: 5
  username: username
  password: tehpass
Run Code Online (Sandbox Code Playgroud)

在终端中我可以成功运行以下内容并登录数据库:

psql -U username dbname_dev
Run Code Online (Sandbox Code Playgroud)

但是在创建了这个新的rails项目并运行之后

rails g controller ComingSoon index
Run Code Online (Sandbox Code Playgroud)

当我转到localhost:3000/coming_soon时,我收到以下消息(尽管双重和三重检查登录凭据)

fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)

任何想法为什么我可以通过"psql"登录到这些数据库,但Rails不能?

Man*_*Das 25

database.yml的:

connection: &connection
  adapter: postgresql
  encoding: unicode
  pool: 5
  username: username
  password: tehpass

development:
  <<: *connection
  database: dbname_development

test:
  <<: *connection
  database: dbname_test

production:
  <<: *connection
  database: dbname_production
Run Code Online (Sandbox Code Playgroud)

如果这对您不起作用,那么在安装过程中可能会出现问题.

访问此博客,希望这可能会帮助您.


编辑


错误案例:

e_sendauth: no password supplied 

fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)

这是在Ubuntu安装库存下发生的,并且是由于pg_hba.conf中的权限在默认情况下过于严格.要允许rails连接,只需将pg_hba.conf的底部更改为如下所示.

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,请告诉我?