◾️はじめに
ホスト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」のパスワード)
関連記事
仮想環境の Debian に PostgreSQL を設定する
ネットワーク系コマンド ~ firewall編 ~
https://dk521123.hatenablog.com/entry/2025/03/17/005508