【PostgreSQL】 ホストOSの pgAdmin III からゲストOS / Debian のPostgreSQLにアクセスできるようにする

◾️はじめに

ホストOSの pgAdmin III からゲストOSのPostgreSQLにアクセスできるようにする

前提条件

* 以下の関連記事にある設定を行っている事

ゲストOS / PostgreSQL側の設定

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」のまま)

[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

■ ホストOS / pgAdmin III側の設定

[1] PostgreSQL をインストールする(下記の関連記事を参照のこと)
http://blogs.yahoo.co.jp/dk521123/33153278.html
[2] pgAdminIIIを起動し、[ファイル]-[サーバを追加]を選択
[3] 以下のように設定する

■「プロパティ」タブ

 * 名前:(任意) PostgreSQL in Linux
 * ホスト:ゲストOS(PostgreSQL)のIPアドレス
 * Port:PostgreSQLのポート番号(デフォルト:5432)
 * ユーザ名:PostgreSQLのユーザ名(デフォルト:postgres)

■「SSH Tunnel」タブ

 * Use SSH Tunneling:チェックを付ける
 * Tunnel Host:ゲストOS(PostgreSQL)のIPアドレス
 * ユーザ名:ゲストOS(Linux)のユーザ名(例えば「root」)
 * Authentification:「パスワード」を選択
 * Password/Passphrase:ゲストOS(Linux)のパスワード(例えば「root」のパスワード)

関連記事

仮想環境の DebianPostgreSQL を設定する
ネットワーク系コマンド ~ firewall編 ~
https://dk521123.hatenablog.com/entry/2025/03/17/005508