0

ubuntu 12.04rails 3.2を使用しています。PostgreSQLデータベースを使用する Rails アプリケーションを作成しています。次のコマンドを使用して postgresql をインストールしました。

sudo apt-get install postgresql

参考までに、https://help.ubuntu.com/community/PostgreSQLをチェックアウトしました。後で、ユーザー postgres を作成し、次のコマンドを使用してパスワード postgres を設定しました

sudo -u postgres psql postgres
\password postgres

次に、次を使用してデータベースを作成しました。

 sudo -u postgres createdb mydb

ユーザー名postgresとパスワードpostgresを使用して Postgresql に接続しようとしましたが、次のコマンドで正常に接続されました。

psql -U postgres -h localhost
Password for user postgres:
psql (9.1.4)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
postgres=#

私の Rails アプリでは、database.yml に次のコードがあります。

development:
 adapter: postgresql
 encoding: unicode
 database: mydb_development
 pool: 5
 username: postgres
 password: postgres

test:
 adapter: postgresql
 encoding: unicode
 database: mydb_test
 pool: 5
 username: postgres
 password: postgres

production:
 adapter: postgresql
 encoding: unicode
 database: mydb_production
 pool: 5
 username: postgres
 password: postgres

コマンドを実行するとrake db:migrate、次のエラーが表示されます。

rake aborted!
FATAL:  Peer authentication failed for user "postgres"

各環境の database.yml に host: localhost を追加しようとしたところ、次のエラーが発生しました。

rake aborted!
couldn't parse YAML at line 28 column 0

28行目は

development:
 adapter: postgresql
 encoding: unicode
 database: hackathonio_development
 pool: 5
 username: postgres
 password: testing
 host: localhost {This is line 28}

これに対する解決策を見つけるのを手伝ってください..

4

3 に答える 3

1

2つの問題があると思います。まず、Shreyas が指摘したようにホストが設定されていません。しかし、2番目の問題は、ホスト名を設定すると、RailsがローカルのRubyソケットではなくtcpソケットを介してPostgreSQLに接続しようとすることだと思います。pg_hba.conf私の推測では、postgres が localhost 経由でログインできるようにファイルを変更する必要があると思います。以下は、役立つ可能性のある回答を含むいくつかのSOの質問です。

Rails が postgresql にログインできない - PG::Error - パスワード - 正しい情報

pg_hba.conf の「ローカル」接続タイプと「ローカルホスト」接続タイプの違いは何ですか?

ubuntu 10.04サーバー上のrails 3の新しいデータベースでpostgresユーザーを使用できません

于 2012-08-14T14:28:16.353 に答える
0

ホストを localhost として yml に追加してください

于 2012-08-14T12:46:18.897 に答える
0

私の推奨事項:

ステップ1

実行して、新しい別のユーザーを作成します

$ createuser <username>

コマンドラインで。パスワードなどの入力を求められます (例/ドキュメント: http://www.postgresql.org/docs/8.1/static/app-createuser.html )

ステップ2

database.yml新しいユーザーのユーザー名/パスワードで更新します。少なくとも今のところ、作成した最初のユーザーは忘れてください。

ステップ2

$ rake db:create

ステップ 3

$ rake db:migrate

これらの手順は、あなたが試みていることよりもうまくいく可能性が高いと思います。

于 2012-08-14T13:57:41.150 に答える