pgAdmin3をHerokuのPostgresに接続する


9

Herjan Postgresデータベース(データベース)をDjangoアプリに関連付けて実行しています。アドオンを参照するドキュメントはこちらです。Herokuは今日、デフォルトであった共有データベースアドオンからすべてを移行することをユーザーに警告したため、これはコミュニティにとって価値のある質問になると思いました。

pgAdmin3をデータベースに接続するときに問題が発生しました。

上記のリンクの指示に従って、次のコマンドを使用してデータベースの資格情報を取得します。

$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE

Mac OSXでPostgresqlの自作インストールを使用しています。

それまでの間、私は次のことを行いました。

  • 私のpg_postgresql.confでSSLをオンにしました。
  • 設定を追加しました: listen_addresses = '*'
  • と追加されました host all all 0.0.0.0/0 md5
  • 私のpostgresサーバーを再起動しました。

次に、pgAdmin3に移動してを選択しますFile > Add Server

Herokuが提供する資格情報を次のように入力します(1つ目はHeroku資格情報名、2つ目はpgAdminフィールド名です):

[プロパティ]タブで:

  • Nameへのdbname;
  • ホストへのホスト。
  • ポートへのポート。
  • 「Maintenance Database」のpgAdminフィールドは空白のままにします。
  • ユーザー名にユーザー;
  • Password to Password;

[SSL]タブ:

  • SSLのフィールドで、「require」を選択します(Herokuの指示に従います)。

Enterキーを押すと、pgAdminは次のようにエラーをスローします。

An error has occurred:

Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.

この時点で何をすべきかわからない。任意のポインタをいただければ幸いです。


pgadmin.org/docs/1.8/connect.htmlは言う:The maintenance DB field is used to specify the initial database that pgAdmin connects to, and that will be expected to have the pgAgent schema and adminpack objects installed (both optional). On PostgreSQL 8.1 and above, the maintenance DB is normally called ‘postgres’-そして、それはpgAdminが接続しようとしたものです。postgresユーザーのパスワードを入力します。
dezso 2012

回答:


6

ここで答えを提供してくれたStack Overflowの@araqnidに感謝します

そこから逐語的に引用:

pgAdminIIIでHerokuサーバーの「プロパティ」を開き、「Maintenance DB」の値を接続するデータベースの名前に変更します。デフォルトの設定は、サーバー上の任意のデータベースに接続できるDBAなどに適していますが、実際にはそうではありません。

これは私のために働いた!


しかし、これは1368データベースをオプトインしました。私が私のDB名としてMaintenance DBを追加した場合でも
Sunil Garg

3

FATAL: permission denied for database "postgres"postgresデータベースに接続しようとしていることを示します。私たちは確かにそのような特権を与えません。ただし、独自のデータベースに接続することもできます。これは、psql CLI経由で接続することで証明できます。

herokuをpgadminでdbname呼び出されるものに設定しているようですName。これは、そこに作成するものの「接続名」のようです(後で参照するための任意の名前です)が、実際のデータベース名を設定できる場所がないため、デフォルトになりませんpostgresか?

私はpgadminユーザーではありませんが、次のように指定されたdocs [1]を検索するだけです。

The maintenance DB field is used to specify the initial database that pgAdmin connects to

試して頂けますか?

[1] http://www.pgadmin.org/docs/dev/connect.html


1

次のコマンドを実行して、Herokuからデータベース認証情報を取得します。

heroku pg:credentials DATABASE_URL

次に、PG CommanderやPGAdminなどのGUIツールを使用して、dbに接続できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.