Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails PostgreSQL用户的身份验证错误?_Ruby On Rails_Ruby_Database_Ruby On Rails 3_Postgresql - Fatal编程技术网

Ruby on rails PostgreSQL用户的身份验证错误?

Ruby on rails PostgreSQL用户的身份验证错误?,ruby-on-rails,ruby,database,ruby-on-rails-3,postgresql,Ruby On Rails,Ruby,Database,Ruby On Rails 3,Postgresql,我试图在ruby on rails项目中运行rake db:create db:migrate db:seed,我收到一个错误,提示用户“postgres”的密码身份验证失败 看看其他类似的问题,很多人指出了pg_hba文件中的有效性缺陷,但据我所知,它没有问题 local all postgres md5 local all all

我试图在ruby on rails项目中运行
rake db:create db:migrate db:seed
,我收到一个错误,提示用户“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”
使用name='p
并获得以下信息:

-[ RECORD 1 ]---------
usename     | postgres
usesysid    | 10
usecreatedb | t
usesuper    | t
usecatupd   | t
userepl     | t
passwd      | ********
valuntil    | 
useconfig   | 
更多信息:系统Ubuntu14.04运行在一个流浪者的盒子里,PostgresV9.3

更新:我创建了一个新数据库和一个新用户,按照这里的说明,将新信息添加到config目录中的database.yml文件中,以确保我使用的是DB user no系统用户

更新-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

由于可能有很多因素,所以很难指出您的设置中的错误。我想我将尝试讲述如何使用vagrant+rails+postgresql,所以我希望这对您有所帮助。这假设您在Ubuntu 14.04中有一个全新的vagrant box

假设您已经为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;
完成这些步骤后,我只需添加相应的
数据库.yml
配置并运行
rake db:migrate
。我发现这些工作流对我来说很有效,我从未遇到过任何权限问题。我也从未使用此设置接触过
pg_hba.conf
。请尝试一下,我希望这能解决您的问题


干杯!

您输入了正确的密码还是希望不用密码就可以连接?@alexius,我已经在database.yml文件中设置了密码,并尝试使用su-postgres和该密码登录,但确实有效?当您在postgres用户下连接时,您最有可能根据pg_hba文件使用对等身份验证(不需要密码)。应用程序可能连接到本地主机而不是unix套接字,并收到密码提示。请尝试在postgres user下连接,并添加
-h 127.0.0.1
以检查密码是否正确。您能告诉我要使用的确切命令格式吗?抱歉,因为我是新手。我想用psql:
psql-h 127.0.0.1
检查密码是否正确对的