Jac*_*ard 5 ruby database postgresql ruby-on-rails role
我正在尝试db:create
在DigitalOcean服务器上使用postgresql 运行rake .
但是,它返回错误Peer authentication failed for user "rails"
,指的config/database.yml
是存储登录凭据的位置
奇怪的是,当我通过SSH登录服务器时,这些是以纯文本显示给我的确切凭据.我已经尝试了两个,<%= ENV['APP_DATABASE_PASSWORD'] %>
并以纯文本显示给我的密码,同样的事情发生了.
环境正在生产中,我必须手动强制执行,因为应用程序在启动时处于开发状态并且强制它进行更改config/environments.rb
无法正常工作.
如果我不得不猜测我可能会说环境中发生了一些有趣的事情,因为DigitalOcean将继续提供该网站的缓存版本,直到服务器重新启动,并且它可能仍然认为它正处于开发阶段.但是在我弄清楚如何在启动时强制它投入生产之前,我会陷入困境.
这个问题就是我在经历了很多与postgres的苦难并试图在后端建立数据库后得到的,所以我需要经历几件事.
非常感谢.
Dip*_*pta 13
问题在于您的pg_hba.conf
文件.你可以在哪找到/etc/postgresql/9.3/main/pg_hba.conf
.这里9.3是postgres版本,你可以改变你的postgres版本.有关身份验证的更多细节是这里.
你有类似的代码:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
Run Code Online (Sandbox Code Playgroud)
您可以将其更改为md5
或trust
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
Run Code Online (Sandbox Code Playgroud)
它会解决你的问题.
注意:要编辑pg_hba.conf
文件,您应该在服务器上具有sudo权限.