ホスト システム上の PostgreSQL クライアントから VirtualBox ゲスト システム上の PostgreSQL サーバーに接続しようとすると、「接続試行に失敗しました」というメッセージが表示されます。
ホスト システムは Windows XP です。VirtualBox 3.1.2 を実行しています。ゲスト システムは Ubuntu 9.10 Karmic Koala と PostgreSQL 8.4 です。
マニュアルに記載されているようにVirtualBoxでポート5432を転送し、この郵便受けを実行するとvboxmanage getextradata vmname enumerate
、次のようなエントリが表示されます (他にもいくつかあります)。
Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/GuestPort, Value: 5432
Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/HostPort, Value: 5432
Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/Protocol, Value: TCP
/etc/postgresql/8.4/main/pg_hba.conf で次のエントリを使用して PostgreSQL セキュリティを設定しました。
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.1.0/24 md5
host all all 10.0.2.2/32 md5
次に、 で PostgreSQL をリロードしましたsudo /etc/init.d/postgresql-8.4 reload
。
診断目的のみ、Windows ファイアウォールと Ubuntu ファイアウォール ( sudo ufw disable
) を無効にしました。
私がどの手順を見逃したか知っている人はいますか?
答え1
OK、おかげで見逃したステップが見つかりましたこの郵便受け。
postgresql.conf で listen_addresses 設定を設定するのを忘れていました。この値を使用していますが、さらに制限することもできます。
listen_addresses = '*'
明確にするために、ホストから PostgreSQL に接続するときは、サーバーとして localhost を使用し、ポートとして 5432 を使用します。VirtualBox はそのポートをゲストに転送します。
また、一部の設定では、PostgreSQL をリロードするだけでなく再起動する必要があることに気付きました。コマンドは次のとおりです。
sudo /etc/init.d/postgresql-8.4 restart