繁体   English   中英

在AWS上进行Capistrano部署期间无法对Postgres用户进行身份验证

[英]Unable to authenticate postgres user during capistrano deploy on AWS

我正在尝试将Rails应用程序部署到AWS。 部署失败,并显示

PG::ConnectionBad: FATAL: Ident authentication failed for user "postgres"

我的database.yml文件(由capistrano从应用程序根目录下的共享目录合并)

production:
  adapter: postgresql
  encoding: unicode
  database: tpms_prod
  username: postgres
  host: 127.0.0.1
  port: 5432

pg_hba.conf是默认的,看起来像这样

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

我尝试将pg_hba.conf的身份验证设置更改为password但是仍然报告身份验证失败!

我尝试将新的超级用户添加到数据库并在database.yml文件中使用该用户-但该用户的身份验证也失败,因此我知道部署过程正在使用database.yml文件。

如果我正确理解了ident机制,那么请求连接的用户只需“成为”已声明的用户,这可以在命令行中得到证实。

可能是错误的....但是对我而言,ident意味着您必须在数据库(必须创建db用户)和客户端(此处为rails)之间使用相同的用户名。

这意味着,如果您希望它能正常工作,则应以“ postgres”用户身份运行rails应用程序(这可能不是最好的主意)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM