- PR -

Postgresql JDBC接続失敗します

1
投稿者投稿内容
katsum
大ベテラン
会議室デビュー日: 2002/02/27
投稿数: 119
お住まい・勤務地: 東京都
投稿日時: 2002-03-04 21:22
以下のコードで接続するところまで試しているのですが、url が 127.0.0.1 だと成功するものの、マシンのIPアドレスである 192.168.1.101 を指定すると getConnection で SQLException が発生してしまいます。
実行は postgresql が入っているマシンから行なっています。
postgresql の方は、postgres ユーザーで postmaster -S -i で起動しています。
psql guestbook でSQLの実行も確認できています。
何か調べた方がよさそうなところがあったら教えてください。

<pre>
import java.sql.*;

class jdbc {
public static void main(String[] args) {
Connection con = null;
//OK// String url = "jdbc:postgresql://127.0.0.1:5432/guestbook";
//NG// String url = "jdbc:postgresql://192.168.1.101:5432/guestbook";
String user = "postgres";
String password = "";

try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException");
return ;
} catch (SQLException e) {
System.out.println("SQLException");
return ;
}
}
}
</pre>
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2002-03-04 22:58
katsumさんの書き込み (2002-03-04 21:22) より:
> 以下のコードで接続するところまで試しているのですが、url が 127.0.0.1 だと成功する
> ものの、マシンのIPアドレスである 192.168.1.101 を指定すると getConnection で
> SQLException が発生してしまいます。

Postgresをインストールしたディレクトリ内に、「pg_hba.conf」というファイルが
なかったでしょうか?こちらのファイル内を使用して、 Postgres に接続可能な
ホストの制御をおこなっているようですが、デフォルトでは、127.0.0.1 以外の接続を
許可していないはずです。
ですので、この場合、該当ファイルに使用しているホストのIPを記述することで問題は
解決するとおもいます。詳しいことは、ドキュメントなり、書籍にてご確認ください。
katsum
大ベテラン
会議室デビュー日: 2002/02/27
投稿数: 119
お住まい・勤務地: 東京都
投稿日時: 2002-03-04 23:17
>せんさん
返信ありがとうございます。ちょうど自力でそこに辿りつき、以下の投稿をしようと思っていたところでした。
同じような状況になる方もいると思われますので、少し詳細に書いてあります。
============================================================
$POSTGRESQL_HOME/data/pg_hba.conf の最下行に
host all 192.168.1.0 255.255.255.0 trust
と接続を許す行を追加し Postgresql を再起動したら解決しました。
Java(jdbc) ではなく Postgresql 側の設定でしたが、これは最初は引っかかりますね。
ちなみに以下の Postgresql 日本語マニュアルを参考にさせていただきました。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/
[PostgreSQL 7.1.3 管理者用ガイド][Chapter 4. クライアント認証]
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2002-03-05 04:25
katsumさんの書き込み (2002-03-04 23:17) より:
> $POSTGRESQL_HOME/data/pg_hba.conf の最下行に
> host all 192.168.1.0 255.255.255.0 trust

192.168.1.x を持つホスト全てから接続できるようになってますけど、
それは理解した上での設定ってことですよね?

> と接続を許す行を追加し Postgresql を再起動したら解決しました。
> Java(jdbc) ではなく Postgresql 側の設定でしたが、これは最初は引っかかりますね。

すくなくとも、PostgreSQL完全後略ガイドをお読みになった方は
そのようなことにはならないハズです。
1

スキルアップ/キャリアアップ(JOB@IT)