我的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 | | {}
答案 0 :(得分:4)
deployer@xxx:~$ psql psql: FATAL: role "deployer" does not exist
您需要在postgres中创建用户:
create user deployer;
或者,在个人资料中添加导出,例如:
export PGUSER=postgres
或根据需要更改对psql的调用:psql -Uusername database