1) ホストOSとゲストOSのIPアドレスを調べる(ipconfig/ifconfigで)
# ホストOSとゲストOSで、お互いに対して、ping で通信の疎通を確認しておくといい。
2) 各種設定ファイルを修正する
[1] /etc/postgresql/9.1/main/postgresql.conf
【修正前】
#listen_addresses = 'localhost' # what IP address(es) to listen on;
【修正後】
listen_addresses = '*' # what IP address(es) to listen on;
# ついでに文字化けも直しておく
【修正前】
lc_messages = 'ja_JP.UTF-8' # locale for system error message
【修正後】(小文字'c'ではダメ)
lc_messages = 'C' # locale for system error message
# ポートを変更してもいいが、以下の関連記事を参照のこと
# (今回はデフォルト「5432」のまま)
http://blogs.yahoo.co.jp/dk521123/33585391.html
[2] /etc/postgresql/9.1/main/pg_hba.conf
以下「!!追記!!」を参考に追記する
※ [ホストOSのIPアドレス]/[ホストOSのマスク]は自分の環境に合うように修正
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# host all all [ホストOSのIPアドレス]/[ホストOSのマスク] trust
host all all 192.XXX.XXX.1/24 trust # !!追記!!
※ もし「Access to database denied」が表示されて、うまく繋がらない場合は
以下を指定して試してみるのも手。
# すべてのクライアントから許可する(以下のURL参照のこと。)
host all all 0.0.0.0 0.0.0.0 trust
http://kkkw.hatenablog.jp/entry/20081207/1228626082
3) 以下のコマンドを入力し、PostgreSQL を再起動する
su
#【PostgreSQL再起動】
/etc/init.d/postgresql restart
4) PostgreSQLのポートを開ける(下記はデフォルトのポート「5432」の例)
iptables -I OUTPUT -p tcp --sport 5432 -m state --state ESTABLISHED -j ACCEPT