2

Railsプロジェクト(参加している)用にローカルのpostgresqlデータベースをセットアップしており、次のことを行っています。

  • インストールされたpostgres
  • 「pg」ジェムを追加/同梱
  • 「foobar」という名前のdbユーザーを作成しました
  • 「foobar_development」という名前のデータベースを作成しました

Rails アプリには rake db:migrate タスクが付属しています。このタスクを実行すると、次のエラー出力が表示されます。

FATAL:  no pg_hba.conf entry for host "::1", user "foobar", database "foobar_development", SSL off

次の場所に pg_hba.conf ファイルが見つかりました。

/usr/local/var/postgres

pg_hba.conf ファイルの関連部分は次のとおりです。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.

#local   replication     jimmyli                                trust
#host    replication     jimmyli        127.0.0.1/32            trust
#host    replication     jimmyli        ::1/128                 trust

私は自分の Mac (バージョン 9.2.4) に付属の postgres を使用していますが、別のバージョンを別の場所にインストールしたのではないかと心配しています (それを削除する必要があります - とにかくこれを確認できますか?)。また、Postgres.app を使用して psql を実行しています。( http://postgresapp.com/ )。

私の pg_hba.conf ファイルは正しく動作するはずだと思います (すべてのユーザーにすべてのデータベースへのアクセスを許可しているため)、そこに別の pg_hba.conf ファイルがあるのではないかと思います。それは使用されていません。この仮説を検証するにはどうすればよいですか?

4

4 に答える 4

4

pg_hba.conf ファイルに変更を加えた後、postgresql をリロードしましたか? スーパーユーザーとして db にログインしselect pg_reload_conf();、pg_hba.conf および postgresql.conf ファイルをリロードしてみてください。

于 2013-07-04T14:52:12.070 に答える
0

コマンド ラインで次の環境変数を設定して、Postgres 接続に SSL を要求します。

$ export PGSSLMODE=require
于 2016-02-14T04:36:59.090 に答える