pgAdmin を使用して PostgreSQL をリモート データベースに接続できない
-
18-09-2019 - |
質問
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では、AWSでRDSに接続されていませんでした。
私は私の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では、自動的に私にログインします。
これはまた、pg_hba.confファイルで働いていました
任意のIPアドレスを持たないhost all all md5
、これも私のIPアドレスhost all all <myip>/32 md5
で働いていた。
注意点として、私のRDSは私のデフォルトのVPCにありました。私は、デフォルトのVPCと同一のセキュリティグループ、ACLとセキュリティグループの設定で私のデフォルト以外のVPCで同じRDSインスタンスを持っていたし、私はそれを動作させることができませんでした。わからない理由しかし、それは別の日のためです。
Linux ターミナルでこれを試してください:
sudo service postgresql start
:サーバーを起動するにはsudo service postgresql stop
:サーバーを停止するにはsudo service postgresql status
:サーバーのステータスを確認するには
のRedHat 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
ファイアウォールを確認してください。あなたはそれを無効にすると、あなたは接続することができます。あなたは/ファイアウォールを無効にすることはできませんしたい場合は、リモート接続のためのルールを追加します。