簡體   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