登录Postgresql时,角色不存在错误

时间:2013-05-17 12:31:51

标签: ruby-on-rails postgresql deployment

我的Rails应用无法连接到Postgresql。我怀疑它是因为Postgres希望登录它的用户是登录Ubuntu的同一用户(12.10)。

deployer@xxx:~$ whoami
deployer
deployer@xxx:~$ psql
psql: FATAL:  role "deployer" does not exist

我的设置遵循以下顺序:

a)作为root @ server,我创建了一个新组admin和一个新用户deployer

groupadd admin
adduser deployer --ingroup admin
ssh-copy-id root@xxx.xxx.xx.xx

b)我以部署员身份登录并安装了Postgres

sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql libpq-dev

c)在我的远程服务器上,我登录psql并创建了一个新用户来匹配我的Rails应用程序:

sudo -u postgres psql
create user 'my_app' with password 'secret';
create database my_app_production owner my_app;

对于部署,我使用deployer用户。部署期间会出现此错误:

FATAL: password authentication failed for user "my_app"

这是我的database.yml

production:
  adapter: postgresql
  encoding: utf8
  database: my_app_production
  pool: 5
  host: localhost
  username: my_app
  password: secret

在psql中运行\du会产生以下结果:

 Role name  |                   Attributes                   | Member of 
------------+------------------------------------------------+-----------
 postgres   | Superuser, Create role, Create DB, Replication | {}
 my_app     |                                                | {}

1 个答案:

答案 0 :(得分:4)

deployer@xxx:~$ psql
psql: FATAL:  role "deployer" does not exist

您需要在postgres中创建用户:

create user deployer;

或者,在个人资料中添加导出,例如:

export PGUSER=postgres

或根据需要更改对psql的调用:psql -Uusername database