web-dev-qa-db-ja.com

PostgreSQLデータベースへのリモートアクセスを許可する方法

Windows 7にPostgreSQL 9.2をインストールし、仮想マシンにWindows XPをインストールしています。これら2つのデータベースを接続し、両方のシステムからデータベースを追加/編集するリモートアクセスを許可するにはどうすればよいですか?

32
Ali4356

PostgreSQLデータベースにリモートアクセスするには、2つの主要なPostgreSQL構成ファイルを設定する必要があります。

postgresql.conf
pg_hba.conf

設定方法の簡単な説明を次に示します(次の説明はあくまでも目安です:マシンを安全に構成するには、すべてのパラメーターとその意味に精通している必要があります)

まず、Windows 7マシンのすべてのネットワークインターフェイスでポート5432でリッスンするようにPostgreSQLサービスを構成します。
ファイルを開く_postgresql.conf(通常はC:\ Program Files\PostgreSQL\9.2\dataにあります)パラメーターを設定します

listen_addresses = '*'

Postgresqlが仮想マシンホストからの接続を受け入れることができるように、WindowsXP仮想マシンのネットワークアドレスを確認し、pg_hba.confファイル(postgresql.confと同じディレクトリにある)にパラメーターを設定します。
たとえば、Windows XPに192.168.56.2のIPアドレスがあるマシンの場合、pg_hba.confファイル:

Host all all 192.168.56.1/24 md5

このようにして、PostgreSQLはネットワーク192.168.1.XXX上のすべてのホストからの接続を受け入れます。

Windows 7でPostgreSQLサービスを再起動します(サービス-> PosgreSQL 9.2:右クリックしてサービスを再起動します)。 pgAdminをWindows XP machineにインストールし、PostgreSQLに接続してみます。

58
AndreaBoc

設定後listen_addresses = '*' inpostgresql.conf

hba_file.confファイルを編集し、ファイルの最後に次のエントリを追加します。

Host    all             all              0.0.0.0/0                       md5
Host    all             all              ::/0                            md5

設定ファイルを見つけるにはこのリンク が役立つかもしれません。

PostgreSql 9.5.1を使用している場合、以下の構成に従ってください。

  1. PgAdminでhg_hba.confを開きます pgAdmin
  2. パスを選択して開き、設定を追加します pg_hba.conf
  3. Postgresqlサービスを再起動します
8
176coding

上記の回答に加えて、(1)構成ファイルpg_hba.confの変更、(2)postgresql.conf、(3)PostgreSQLサービスの再起動、一部のWindowsコンピューターでも受信が必要になる場合がありますTCPポートで許可されるトラフィック(通常5432)。

これを行うには、Windowsファイアウォールを開き、ポートの受信規則(例:5432)を追加する必要があります。

コントロールパネル\システムとセキュリティ\ Windows Defenderファイアウォール>詳細設定>アクション(右タブ)>インバウンドルール>新しいルール…>ポート>特定のローカルポートに進み、入力します使用するポート、通常5432>(残りの設定はデフォルトで、任意の名前を入力します)

Windows firewall settings

次に、クライアントコンピューターのpgAdminから再度接続してみます。サービスを再起動する必要はありません。

6
Jim C

これをpg_hba.confに追加して、PostgreSQLを再起動する必要があります。

すべての192.168.56.1/24 md5をすべてホストする

これは、VirtualBoxおよびHost-onlyアダプターが有効な場合に機能します。 Virtualboxを使用しない場合は、IPアドレスを置き換える必要があります。

2