ruby on rails - PostgreSQL用户认证错误



我试图在ruby on rails项目中运行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。

update:我创建了一个新的数据库和一个新的用户按照这里找到的说明进入链接描述在这里,添加新的信息到数据库。在配置目录中找到的yml文件,以确保我使用的是DB用户而不是系统用户。

update-2:这是在数据库中找到的信息。html文件开发:

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

由于可能有很多因素,因此很难指出设置中的错误。我想我会尝试讲述我是如何使用vagrant + rails + postgresql的,所以我希望这能帮助你。这假设你有一个新的Ubuntu 14.04的流浪汉盒子。

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

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

然后登录到你的postgresql admin用户:

sudo su postgres
psql

一旦登录到psql控制台,我通常创建一个名为vagrant的用户。这样做是因为当登录到db控制台时,postgresql默认使用当前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与这个设置。请尝试一下,我希望这能解决你的问题。

干杯!

相关内容

  • 没有找到相关文章