IP 192.168.1.10 のローカル サーバー (Ubuntu) に PostgreSQL をインストールしました。現在、pgAdmin を使用して IP 192.168.1.11 でクライアント マシン (Ubuntu) からデータベースにアクセスしようとしています。
クライアントが接続できるようにするには、postgresql.conf と pg_hba.conf を変更する必要があることはわかっています。案内していただけますか?
IP 192.168.1.10 のローカル サーバー (Ubuntu) に PostgreSQL をインストールしました。現在、pgAdmin を使用して IP 192.168.1.11 でクライアント マシン (Ubuntu) からデータベースにアクセスしようとしています。
クライアントが接続できるようにするには、postgresql.conf と pg_hba.conf を変更する必要があることはわかっています。案内していただけますか?
pgAdmin3 を介してリモートで PostgreSQL サーバーに接続するのは、実際には 3 ステップのプロセスです。
注: Ubuntu 11.04 と PostgreSQL 8.4 を使用しています。
デフォルト設定では、ループバック インターフェイスでの接続のみをリッスンできるため、PostgreSQL がリモートの着信 TCP 接続をリッスンするようにする必要があります。サーバーにリモートでアクセスできるようにするには、次の行をファイルに追加する必要があります/etc/postgresql/8.4/main/postgresql.conf:
listen_addresses = '*'
デフォルトでは、PostgreSQL はリモートアドレスから受信するすべての接続を拒否します。この行を追加して、これらのルールを緩和する必要があります。/etc/postgresql/8.4/main/pg_hba.conf:
ホスト すべて すべて 0.0.0.0/0 md5
これは、有効なパスワード (md5 キーワード) を提供できれば、誰でも任意のアドレスからログインできるようにするアクセス制御規則です。0.0.0.0/0 の代わりに必要なネットワーク/マスクを使用できます。
これらの変更を構成ファイルに適用したら、PostgreSQL サーバーを再起動する必要があります。ユーザー名とパスワードを使用して、サーバーにリモートでログインできるようになりました。
PostgreSQL 8 以降を使用している場合は、 のlisten_addresses
設定を変更する必要がある場合があります/etc/postgresql/8.4/main/postgresql.conf
。
次の行を追加してみてください。
listen_addresses = *
これにより、すべてのネットワーク インターフェイスで接続をリッスンするように PostgreSQL に指示されます。
明示的に設定されていない場合、この設定はデフォルトlocalhost
で、同じマシンからの接続のみを受け入れることを意味します。
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 と同一であり、それを機能させることができませんでした。理由はわかりませんが、それは別の日にします。
レッドハット 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