Ruby on rails 致命:用户的对等身份验证失败;铁路";
我正在尝试在DigitalOcean服务器上使用postgresql运行rakeRuby on rails 致命:用户的对等身份验证失败;铁路";,ruby-on-rails,ruby,database,postgresql,role,Ruby On Rails,Ruby,Database,Postgresql,Role,我正在尝试在DigitalOcean服务器上使用postgresql运行rakedb:create 但是,它返回了用户“rails”的对等身份验证失败的错误,指的是存储登录凭据的config/database.yml 奇怪的是,当我通过SSH登录到服务器时,这些就是以纯文本形式显示给我的凭据。我尝试了和以纯文本显示给我的密码,同样的情况也发生了 该环境正在生产中,我必须手动执行,因为该应用程序在启动时正在开发中,并强制它在config/environments.rb中进行更改,但不起作用 如果我
db:create
但是,它返回了用户“rails”的对等身份验证失败的错误,指的是存储登录凭据的config/database.yml
奇怪的是,当我通过SSH登录到服务器时,这些就是以纯文本形式显示给我的凭据。我尝试了
和以纯文本显示给我的密码,同样的情况也发生了
该环境正在生产中,我必须手动执行,因为该应用程序在启动时正在开发中,并强制它在config/environments.rb
中进行更改,但不起作用
如果我不得不猜测的话,我可能会说环境中发生了一些有趣的事情,因为DigitalOcean将继续为该站点的缓存版本提供服务,直到服务器重新启动,它可能仍然认为它正在开发中。但在我弄明白如何在启动时将其投入生产之前,我处于一种两难境地
这个问题是我在经历了很多与博士后的磨难并试图在后端建立一个数据库之后得出的,所以我需要了解一些事情
非常感谢。问题在于您的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
您可以将其更改为md5
或trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
它会解决你的问题
注意:要编辑pg_hba.conf
文件,您应该在服务器上具有sudo权限。这解决了问题。这是安全方面的倒退吗?不是为我工作。。。是否需要重新启动PosgreSql服务器?是的,有时您还需要重新启动系统。在postgres 9.4的never版本中,我有经验,我们不需要做任何这样的事情settings@DipakG. 您能告诉我,在从终端编辑此文件后如何保存更改吗。我有同样的问题,我正在尝试,但我的文件不是保存更改frm meTo要保存此文件,您必须具有sudo访问权限。您可以在vim或gedit编辑器中打开该文件sudo vi/etc/postgresql/9.3/main/pg_hba.conf
或sudo gedit/etc/postgresql/9.3/main/pg_hba.conf
。gedit提供可视化界面,因此使用gedit命令。如果您需要任何其他帮助,请告诉我。在我的情况下,我忘记在database.yml
中指定主机,即localhost
。默认情况下,PG配置为接受来自localhost
或127.0.0.1