PostgreSQL 用户的身份验证错误?
authentication error for PostgreSQL user?
我正在尝试 运行 rake db:create db:migrate db:seed
在 rails 项目的 ruby 中,我收到一条错误消息 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 运行ning in a vag运行t box, with postgres v9.3.
更新: 我按照此处找到的说明创建了一个新数据库和一个新用户enter link description here,将新信息添加到找到的 database.yml 文件中在配置目录中只是为了确保我使用的是数据库用户而不是系统用户。
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
由于可能有很多因素,因此很难指出您的设置有什么问题。我想我会尝试讲述我如何使用 vagrant + rails + postgresql 所以我希望这对你有帮助。这假设你有一个新的 vagrant box Ubuntu 14.04.
假设您已经为 ruby + rails 安装了必要的软件包。现在你要安装postgresql了。
sudo apt-get install postgresql postgresql-contrib libpq-dev
然后您将登录到您的 postgresql 管理员用户:
sudo su postgres
psql
一旦登录到 psql 控制台,我通常会创建一个名为 vagrant
的用户。我这样做是因为 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
。请试试这个,我希望这能解决你的问题。
干杯!
我正在尝试 运行 rake db:create db:migrate db:seed
在 rails 项目的 ruby 中,我收到一条错误消息 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 运行ning in a vag运行t box, with postgres v9.3.
更新: 我按照此处找到的说明创建了一个新数据库和一个新用户enter link description here,将新信息添加到找到的 database.yml 文件中在配置目录中只是为了确保我使用的是数据库用户而不是系统用户。
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
由于可能有很多因素,因此很难指出您的设置有什么问题。我想我会尝试讲述我如何使用 vagrant + rails + postgresql 所以我希望这对你有帮助。这假设你有一个新的 vagrant box Ubuntu 14.04.
假设您已经为 ruby + rails 安装了必要的软件包。现在你要安装postgresql了。
sudo apt-get install postgresql postgresql-contrib libpq-dev
然后您将登录到您的 postgresql 管理员用户:
sudo su postgres
psql
一旦登录到 psql 控制台,我通常会创建一个名为 vagrant
的用户。我这样做是因为 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
。请试试这个,我希望这能解决你的问题。
干杯!