Windows 7にPostgreSQL 9.2をインストールし、仮想マシンにWindows XPをインストールしています。これら2つのデータベースを接続し、両方のシステムからデータベースを追加/編集するリモートアクセスを許可するにはどうすればよいですか?
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に接続してみます。
設定後listen_addresses = '*'
inpostgresql.conf
hba_file.confファイルを編集し、ファイルの最後に次のエントリを追加します。
Host all all 0.0.0.0/0 md5
Host all all ::/0 md5
設定ファイルを見つけるにはこのリンク が役立つかもしれません。
上記の回答に加えて、(1)構成ファイルpg_hba.confの変更、(2)postgresql.conf、(3)PostgreSQLサービスの再起動、一部のWindowsコンピューターでも受信が必要になる場合がありますTCPポートで許可されるトラフィック(通常5432
)。
これを行うには、Windowsファイアウォールを開き、ポートの受信規則(例:5432)を追加する必要があります。
コントロールパネル\システムとセキュリティ\ Windows Defenderファイアウォール>詳細設定>アクション(右タブ)>インバウンドルール>新しいルール…>ポート>特定のローカルポートに進み、入力します使用するポート、通常5432>(残りの設定はデフォルトで、任意の名前を入力します)
次に、クライアントコンピューターのpgAdminから再度接続してみます。サービスを再起動する必要はありません。
これをpg_hba.confに追加して、PostgreSQLを再起動する必要があります。
すべての192.168.56.1/24 md5をすべてホストする
これは、VirtualBoxおよびHost-onlyアダプターが有効な場合に機能します。 Virtualboxを使用しない場合は、IPアドレスを置き換える必要があります。