2010年12月17日金曜日

Androidエミュレータから社内DBに接続する

Androidエミュレータから、ホストPCにある社内LANのデータベースに接続するのに
手間取ったのでメモ

・データベース:postgresql9.0

まず、エミュレータからホストPC内のpostgresは接続することはできた。
で、そのまま、ホスト名の部分を社内LANにあるDBサーバーのIPアドレスにしてみた所

DriverManager.getConnection(~  の行で
org.postgresql.util.PSQLException: The Connection attempt failed.
の例外が発生した。

ポート番号はデフォルトの5432で合っているし・・・
そういえばSQLServerでもTCP/IPを許可しないとだめだったなと思いだし、
postgresの設定を見て見る。

listen_addressは「*」となっていて、どこからの接続も許可してるみたい。
ここを細かく設定すれば、接続できるネットワークの制限が出来るのね。

次に、pg_hba.confを見て見る。

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
host    all             all             127.0.0.1/32            md5

あれ?127.0.0.1って、ローカルだけしか許容してないぞ。 ということで
192.168.1.0/16 とかやってみる。

confをリロード後・・・ 無事エミュレータからつながった!

0 件のコメント:

コメントを投稿