PostgreSQL用户的身份验证错误?

时间:2015-06-02 02:47:35

标签: ruby-on-rails ruby database ruby-on-rails-3 postgresql

我正在尝试在rails项目中的ruby中运行rake db:create db:migrate db:seed,我收到错误提示FATAL: password authentication failed for user "postgres"

看看其他类似的问题,很多人都指出了pg_hba文件中的有效性错误,但据我所知,它没有问题吗?

local   all             postgres                                md5    
local   all             all                                     peer
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

我也遇到了这个sudo -u postgres psql -x -c "select * from pg_user where usename='p并获得了以下内容:

-[ RECORD 1 ]---------
usename     | postgres
usesysid    | 10
usecreatedb | t
usesuper    | t
usecatupd   | t
userepl     | t
passwd      | ********
valuntil    | 
useconfig   | 

更多信息:系统Ubuntu 14.04在流浪盒中运行,带有postgres v9.3。

更新我按照此处的说明创建了一个新数据库和一个新用户enter link description here,将新信息添加到config目录中找到的database.yml文件中确定我使用的是DB用户而不是系统用户。

update-2 :这是在database.yml文件开发中找到的信息:

development:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: db1
  pool: 5
  username: dev1
  password: dev1
test:
  adapter: postgresql
  encoding: unicode
  host: localhost
  port: 5432
  database: db_test1
  pool: 5
  username: dev1
  password: dev1

1 个答案:

答案 0 :(得分:0)

由于可能存在很多因素,因此很难指出您的设置有什么问题。我想我会尝试叙述我如何使用vagrant + rails + postgresql,所以我希望这会对你有所帮助。这假设您有一个带有Ubuntu 14.04的新鲜流浪盒。

假设您已经为ruby + rails安装了必要的软件包。现在你要安装postgresql。

sudo apt-get install postgresql postgresql-contrib libpq-dev

然后你会登录你的postgresql管理员用户:

sudo su postgres
psql

登录psql控制台后,我通常会创建一个名为vagrant的用户。我这样做是因为postgresql在登录到db控制台时默认使用当前shell用户作为数据库用户。这更方便(对我而言)。然后我也会在控制台中创建数据库。之后,我将数据库的权限授予用户vagrant

CREATE USER vagrant WITH PASSWORD 'password';
CREATE DATABASE db1;
GRANT ALL PRIVILEGES ON DATABASE db1 to vagrant;

完成这些步骤后,我只需添加相应的database.yml配置并运行rake db:migrate。我发现这些工作流程对我有效,我从未遇到过任何权限问题。我也从未使用此设置触及pg_hba.conf。请尝试一下,我希望这可以解决您的问题。

干杯!

相关问题