PostgreSQL JDBC接続

| コメントをどうぞ

PostgreSQLで外部からのJDBC接続があっさりできませんでした。
解決するためにやったことを記載します。

JDBC接続に必要な情報

  • JDBCドライバー
    Class.forName()等でロードするクラスは以下です。
    org.postgresql.Driver
  • URL
    jdbc:postgresql://${host}:${port}/${db}

    • ${host}:接続するDBサーバー
    • ${port}:ポート番号(デフォルトは5432
    • ${db}:使用するデータベース名

サーバーの設定

PostgreSQLの設定がデフォルトのままだとJDBC接続ができませんでした。
接続を受け付けるホストと、そのホストが接続できるデータベースおよび認証方法を設定する必要がありました。

ちなみに最初に見たエラーは次の通りです。

org.postgresql.util.PSQLException: 接続は拒絶されました。ホスト名とポート番号が正しいことと、ポストマスタがTCP/IP接続を受け入れていることを調べて下さい。

接続を許可するホストの設定

データディレクトリ下にあるpostgresql.confファイルを編集します。
自分の環境でのファイルパスは以下でした。

/var/lib/hgsql/data/postgresql.conf

listen_addresses = 'localhost'という行を変更します。
今回は練習なので全てのホストからの接続を許可するようにします。

listen_addresses = '*'

接続可能なデータベースおよび認証方法の設定

データディレクトリ下にあるpg_hba.confファイルを編集します。

/var/lib/hgsql/data/pg_hba.conf

# IPv4 local connectons:下の行を変更します。
練習なので、全ユーザーが全てのデータベースにアクセスできるようにしました。

# TYPE  DATABASE    USER    CIUR-ADDRESS    METHOD

# IPv4 local connections:
host    all         all      0.0.0.0/0       trust

以上でJDBC接続ができるようになりました。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>