web-dev-qa-db-ja.com

pgAdminを使用してPostgreSQLをリモートデータベースに接続できません

IP 192.168.1.10でローカルサーバー(Ubuntu)にPostgreSQLをインストールしました。今、私はpgAdminでIP 192.168.1.11を使用してクライアントマシン(Ubuntu)からデータベースにアクセスしようとしています。

クライアントが接続できるようにするには、postgresql.confとpg_hba.confを変更する必要があることを知っています。案内してもらえますか?

52
vinayrks

実際には、pgAdmin3を介してPostgreSQLサーバーにリモート接続するのは3ステップのプロセスです。

注:Ubuntu 11.04およびPostgreSQL 8.4を使用します。

  1. デフォルトの設定ではループバックインターフェイス上の接続のみをリッスンできるため、PostgreSQLはリモート着信TCP接続をリッスンする必要があります。サーバーにリモートでアクセスできるようにするには、次の行を追加する必要がありますファイルに/etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = '*'

  2. PostgreSQLはデフォルトで、リモートアドレスから受信するすべての接続を拒否します。この行を/etc/postgresql/8.4/main/pg_hba.conf:に追加して、これらのルールを緩和する必要があります

    すべて0.0.0.0/0 md5をすべてホスト

    これは、有効なパスワード(md5キーワード)を提供できる場合に誰でも任意のアドレスからログインできるようにするアクセス制御ルールです。 0.0.0.0/0の代わりに、必要なnetwork/maskを使用できます。

  3. これらの変更を構成ファイルに適用したら、PostgreSQLサーバーを再起動する必要があります。ユーザー名とパスワードを使用して、サーバーにリモートでログインできるようになりました。

110
Syed Aslam

PostgreSQL 8以降を使用している場合は、listen_addresses/etc/postgresql/8.4/main/postgresql.conf設定を変更する必要があります。

行を追加してみてください:

listen_addresses = *

これにより、すべてのネットワークインターフェースで接続をリッスンするようにPostgreSQLに指示します。

明示的に設定されていない場合、この設定はlocalhostにデフォルト設定されます。これは、同じマシンからの接続のみを受け入れることを意味します。

8
jwfearn

Prostgresql.confファイルを変更する必要はありませんでしたが、コマンドライン経由でpsqlが接続されており、pgAdminがRDS on AWSに接続していないため、次の操作を行う必要がありました。

RDSをPublicly Accessibleに設定しました。 ACLとセキュリティグループが広く開かれていて問題があることを確認したので、次のことを行いました:Sudo find . -name *.confその後Sudo nano ./data/pg_hba.conf pg_hba.confファイルのディレクティブの先頭に追加Host all all 0.0.0.0/0 md5とpgAdminが自動的にログインしました。

これはpg_hba.confファイルでも機能しましたHost all all md5 IPアドレスなしで、これも私のIPアドレスで機能しましたHost all all <myip>/32 md5

サイドノートとして、私のRDSはデフォルトのVPCにありました。デフォルトVPCと同じセキュリティグループ、ACL、セキュリティグループ設定を持つデフォルト以外のVPCに同じRDSインスタンスがあり、動作させることができませんでした。理由はわかりませんが、それは別の日です。

1
max56

Redhat Linuxの場合

Sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9はインストールされたpostgresバージョンのフォルダーです。他のバージョンとは異なる場合があります

listen_addresses = 'localhost'からlisten_addresses = '*'を変更してから、

Sudo /etc/init.d/postgresql stop
Sudo /etc/init.d/postgresql start
0
Rujoota Shah

ファイアウォールを確認してください。無効にすると、接続できます。ファイアウォールを無効にしたい/できない場合は、リモート接続のルールを追加します。

0
user7127267