0

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) deployer としてログインし、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

\dupsql で実行すると、次のようになります。

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

1 に答える 1

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

postgres でユーザーを作成する必要があります。

create user deployer;

または、プロファイルにエクスポートを追加します。例:

export PGUSER=postgres

または、必要に応じて psql の呼び出しを変更します。psql -Uusername database

于 2013-05-17T13:06:12.390 に答える