質問

環境はxp、apache2、php5、Postgresql8.2です。

ただ今PHPとPostgresqlの勉強をしています。

postgresに接続できなくて困っています。

<?php
$d_base = pg_connect("user='postgres' password=xxxx dbname='test'"); //データベースに接続
で、エラーになり
その内容は、

Warning: pg_connect() [function.pg-connect]:
Unable to connect to PostgreSQL server:
could not connect to server:
Connection refused (0000000000D/00000)
Is the server running on host "???"
and accepting TCP/IP connections on port 5432? in


です。

ご教示して頂けたら幸いです。

通報する

回答 (1件)

接続できないトラブルの原因は大きく分けて以下の3つ
1.経路が繋がっていない。線が繋がっているように見えても、論理的に切断されている場合もある。
2.接続先(今回はPostgreSQL)が接続を受け付けていない。
3.接続元(今回はPHP5)が接続しにいく設定になっていない。
PHP君は「PostgreSQL君が接続を待ち受けていないよ」と言っている。なので、2番ではないかと考えられる。PHP側でpg_connectにhost=hogehogeを記述していないので正しいマシンに接続にいっていないという3番の可能性もあるにはあるんだけど。

見るべきはPostgreSQLの設定。とりあえず
postgresql.confを開いて、
listen_addresses = '*'
という風になっているか確認。無ければ次のいずれかに設定する。
listen_addresses='127.0.0.1'
listen_addresses='<マシンのIPアドレス>'
listen_addresses='*'
上から順番に安全だ。ただし、一番上はPHPとPostgreSQLが同じマシンで動作していなければいけない。

ところで、恐らくここで詰まったという事は、これが解決しても次の段階で詰まると思われる。上のpostgresql.confと同じ場所にあるであろうpg_hba.confもあわせて確認しておきたい。とりあえず設定例だけ掲載しておくので後は検索いただきたい。
host all all 127.0.0.1/32 password sameuser

この回答へのお礼

ご返事有り難うございました。
早速試してみます。

このQ&Aは役に立ちましたか?1 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

おしトピにAndroid版アプリが登場

話題のトピックにさくっとコメントできる「おしトピ」に Android版アプリが登場! もっと身近に使いやすくなりました。
今ならダウンロードで話題の掃除ロボットや全天球カメラが 当たるプレゼントキャンペーンも実施中。


新しく質問する

毎日見よう!教えて!gooトゥディ