忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
[71] [70] [69] [68] [67] [66] [65] [64] [63] [62] [61]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

RedHat ES上のPostgreSQLにWindowsのColdFusionMX7から接続する必要が出てきました。
今までやったことのないパターンです。
PosgreSQLのサーバーはDMZ上になる点も、今までに無いパターン。

とりあえず、イントラ内のFedoraCoreにPosgreを入れて接続してみることにしました。バージョンは8.1.6。
DMZ上にあると、接続できないときの原因切り分けが難しくなりそうだし。

ColdFusionAdministratorのデーターソースの設定はこんな感じ。
posgre1.gif

JDBC URL:jdbc:postgresql://localhost:5432/myDB?charSet=UTF8
Driver Class:org.postgresql.Driver
Driver Name:
Username:xxxxx
Password(16-character limit):xxxxx
Description:


localhostの部分がIPやホスト名。myDBは接続するposgreのDB名。

とりあえずこれで接続してみると・・・・・

やっぱりエラー。

データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
ルート原因 :org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

さて、posgreの勉強です・・・

/var/lib/pgsql/data/pg_hdba.conf
に、接続を許可するホストの設定があるということで、

host all all 10.1.51.0/255.255.255.0 ident sameuser
と追加してみる。
ident と sameuser というパラメータの意味はよくわからず。
で、

 

service postgresql restart

 してみたが、接続できず。同じエラーですね。

もう少し調べると、
/var/lib/pgsql/data/postgresql.conf

tcpip_socket = true
にすべし。 を発見。

ところが、そんなパラメータは無い・・・・見てる資料のposgreのバージョンが古いのかな。

postgresql.confに

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost', '*' = all
という記述発見。
これっぽい。
listen_addresses = '*'
として、restart 

 

お?エラーが変わった。
データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: FATAL: missing or erroneous pg_hba.conf file
ルート原因 :org.postgresql.util.PSQLException: FATAL: missing or erroneous pg_hba.conf file

あら?最初の設定がまずかった?

pg_hba.conf の設定を、

host all all 10.1.51.0/24 ident sameuser
に変更。サブネットの書き方がまずい模様。
restart すると、
データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
ルート原因 :org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"

認証周りのエラーに変わった・・・・・

  むむむ。

http://www.adobe.com/jp/support/coldfusion/ts/documents/tn18338.htm
この辺のドキュメントを読みながら、そういえばPosgre用のJDBCドライバなんて入れてないなぁ・・・・でも入ってるようなエラーが出てるなぁ・・・・と思い、一応JDBCドライバを入れてみることにする。

http://jdbc.postgresql.org/download.html
・・・なんでこんなに種類があるんだ!? と迷いながらも、JVMバージョンからして、8.1-408JDBC3をチョイス。

サーバーの /cfroot/lib/ フォルダに放り込もうと思って覗いてみると、既に
postgresql-8.1-404.jdbc3.jar
ファイルが置いてありました。
他のColdFusion7のサーバーを見ても入ってません。ということは、データーソース設定をしたときに、ColdFusionが適切なJDBCドライバをダウンロードしたって事ですかね??

JDBCドライバは関係ないということで、再度pg_hdba.confのコメントを読む。

# METHOD can be "trust", "reject", "md5", "crypt", "password",
# "krb5", "ident", or "pam".  Note that "password" sends passwords
# in clear text; "md5" is preferred since it sends encrypted passwords.

 

エラーメッセージにはIdent authentication failedとあるので、[METHOD] ident を trust に変更してみる。

host all all 10.1.51.0/24 trust sameuser

restart すると・・・・・

(^▽^喜) 無事接続できました!


trust だと、どうやらそのIPからパスワード無しで繋がっちゃうようです。

trust → password に変更しました。

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
なかのひと
忍者ブログ [PR]