严重:用户 "rails" 的对等身份验证失败
FATAL: Peer authentication failed for user "rails"
我正在尝试 运行 在 DigitalOcean 服务器上使用 postgresql db:create
。
但是,它返回错误 Peer authentication failed for user "rails"
,指的是 config/database.yml
存储登录凭据的位置
奇怪的是,当我通过 SSH 登录服务器时,这些凭据以纯文本形式显示给我。我已经尝试了 <%= ENV['APP_DATABASE_PASSWORD'] %>
和以纯文本形式显示给我的密码,同样的事情发生了。
环境正在生产中,我必须手动强制执行,因为该应用程序在启动时正在开发中并且强制它在 config/environments.rb
中更改是行不通的。
如果我不得不猜测,我可能会说环境中发生了一些有趣的事情,因为 DigitalOcean 将继续提供站点的缓存版本,直到服务器重新启动并且它可能仍然认为它正在开发中它很关心。但在我弄清楚如何在启动时将其强制投入生产之前,我有点像第 22 条军规。
这个问题是我在使用 postgres 并尝试在后端设置数据库之后遇到的问题,所以我需要完成一些事情。
非常感谢。
问题出在您的 pg_hba.conf
文件上。您可以在 /etc/postgresql/9.3/main/pg_hba.conf
中找到它。这里 9.3 是 postgres 版本,你可以用你的 postgres 版本来改变。有关身份验证的更多详细信息,请参见 here。
您的代码类似于:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
您可以将其更改为 md5
或 trust
。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
它将解决您的问题。
注意: 要编辑 pg_hba.conf
文件,您应该在服务器上具有 sudo 权限。
我正在尝试 运行 在 DigitalOcean 服务器上使用 postgresql db:create
。
但是,它返回错误 Peer authentication failed for user "rails"
,指的是 config/database.yml
存储登录凭据的位置
奇怪的是,当我通过 SSH 登录服务器时,这些凭据以纯文本形式显示给我。我已经尝试了 <%= ENV['APP_DATABASE_PASSWORD'] %>
和以纯文本形式显示给我的密码,同样的事情发生了。
环境正在生产中,我必须手动强制执行,因为该应用程序在启动时正在开发中并且强制它在 config/environments.rb
中更改是行不通的。
如果我不得不猜测,我可能会说环境中发生了一些有趣的事情,因为 DigitalOcean 将继续提供站点的缓存版本,直到服务器重新启动并且它可能仍然认为它正在开发中它很关心。但在我弄清楚如何在启动时将其强制投入生产之前,我有点像第 22 条军规。
这个问题是我在使用 postgres 并尝试在后端设置数据库之后遇到的问题,所以我需要完成一些事情。
非常感谢。
问题出在您的 pg_hba.conf
文件上。您可以在 /etc/postgresql/9.3/main/pg_hba.conf
中找到它。这里 9.3 是 postgres 版本,你可以用你的 postgres 版本来改变。有关身份验证的更多详细信息,请参见 here。
您的代码类似于:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
您可以将其更改为 md5
或 trust
。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
它将解决您的问题。
注意: 要编辑 pg_hba.conf
文件,您应该在服务器上具有 sudo 权限。