54

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

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

4

7 に答える 7

116

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 の代わりに必要なネットワーク/マスクを使用できます。

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

于 2011-05-17T11:50:45.817 に答える
8

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

次の行を追加してみてください。

listen_addresses = *

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

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

于 2010-10-05T19:13:36.010 に答える
1

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

RDS をパブリックにアクセス可能に設定しました。ACL とセキュリティ グループが広く開かれており、まだ問題があることを確認したので、次のことを行い ました。sudo find . -name *.conf 次にsudo nano ./data/pg_hba.conf 、pg_hba.conf ファイルのディレクティブの先頭に追加するhost all all 0.0.0.0/0 md5 と、pgAdmin が自動的にログインしました。

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

ちなみに、RDS はデフォルトの VPC にありました。デフォルト以外の VPC に同一の RDS インスタンスがあり、セキュリティ グループ、ACL、およびセキュリティ グループの設定がデフォルト VPC と同一であり、それを機能させることができませんでした。理由はわかりませんが、それは別の日にします。

于 2016-10-06T19:23:34.440 に答える
0

レッドハット Linux の場合

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

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

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

sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start
于 2016-12-06T21:42:03.813 に答える