• ベストアンサー

postgresにクライアントpcから接続できない。

いつもお世話になっております。 社内にテスト環境を作成しようと、CentOS 5 にpostgres8.4.0をインストールした所、そのサーバ自体からは、dbの作成、tableの作成等sqlの発行は出来るのですが、同じネットワークのwindowsクライアントマシンからpgAdminIIIで接続しようとした所、左下に "データベースに接続...失敗しました"とエラーがでてしまいます。 サーバの設定 "pg_hba.conf"は host all all 192.168.0.0/16 trust を追加(クライアントはこのアドレス内です) "postgresql.conf"は listen_addresses = '*' port = 5432 の行を上記のように変更 CentOSのサーバにはping飛びます。 pgAdminの設定は、 アドレス(サーバIP)、記述(設定名)、DBメンテナンス(DB名)、ユーザー名(postgres)、portはそのまま"5432" で接続しようとしています。 サーバ側のインストール手順は実際に行った手順を書いてましたが、 添付ファイルのような感じです。 どこがいけないか調べるにはどのようにすれば良いでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#246547
noname#246547
回答No.2

CentOSのファイアウォールでtcp/5432がブロックされていませんか? CentOS上で system-config-securitylevel-tui を実行し、 Other portsにpostgres:tcp を追加してみてください

take_july
質問者

お礼

ファイアウォールの設定を見直した所、無事接続する事ができました。 大変ありがとうございました。

その他の回答 (1)

回答No.1

おそらく、ident検査で省かれているものと思われます IPアドレス等が分からないのでなんとも言えませんがpg_hba.confが私には怪しいように見えます。それだと192.168.0.XXXしか繋がらなかったような気がします……IPアドレスがそれで当たっているならば、スーパーユーザー権限を疑ってください どこがいけないかを調べるみたいなものは出来ないと思いますよ 私の場合はコンフィグファイルと睨めっこして、調査していくタイプなので……

take_july
質問者

補足

ご回答ありがとうございます。 host all all 192.168.10.0/24 trust と変更してもやはり同様に駄目でした。 *****以下、CentOSサーバでpostgresインストールを行った手順になります。 2.PostgreSQLインストール  2.1 作成した環境にrootでログインする。  2.2 postgresユーザを作成する。 # useradd postgres  2.3 rpmのアンインストール(postgresがインストールされている場合は削除) #rpm -e postgresql-devel #rpm -e postgresql-server #rpm -e postgresql  2.4 PostgreSQL8.4.0を以下のサイトからダウンロードする。 ・http://www.postgresql.jp/PostgreSQL/8_2/8_2_6  2.5 /usr/local/srcにコピーし、展開を行う。 # cd /usr/local/src # tar zxf postgresql-8.4.0.tar.gz  2.6 コンパイル、インストールを行う。 # cd postgresql-8.4.0 # ./configure --enable-multibyte=UTF-8 --with-perl # make all    ※configure: error: no acceptable C compiler found in $PATH See `config.log' for more details. 上記のようなエラーが出た場合は、 # yum install glibc glibc.i386 # yum install gcc* を実行 ※更にreadlineが無いみたいなメッセージが出たら # yum install readline-devel.i386 を実行。 ・最後に All of PostgreSQL is successfully made. Ready to install と表示されていればコンパイル成功  2.7 インストールを行う。   # make install  2.8 ディレクトリの権限を変更する。 # chown postgres.postgres -R /usr/local/pgsql  2.9 postgresユーザの環境変数設定を行う。 # su - postgres $vi ~/.bash_profile (下記内容を追記) export PATH="$PATH":/usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"  2.10 変更内容を反映させる。 $ source ~/.bash_profile  2.11 DBを初期化する。 $ initdb --encoding=UTF-8  2.12 /usr/local/pgsql/data/pg_hba.confを編集する。 ・下記行を追加 host all all 192.168.0.0/16 trust  2.13 /usr/local/pgsql/data/postgresql.confを編集する。 ・以下の行を変更  listen_addresses = '*' (外からのTCP/IPソケット接続を有効にする。)  port = 5432  2.14 rootユーザでPostgreSQLが自動起動できるよう設定する。 # cd /etc/rc.d/init.d/ # vi postgresql -------以下内容を記述------ #!/bin/bash # # PostgreSQL # # chkconfig: 35 99 01 # description: PostgreSQL script # processname: postgresql case "$1" in start) su - postgres -c "/usr/local/pgsql/bin/pg_ctl start" ;; stop) su - postgres -c "/usr/local/pgsql/bin/pg_ctl stop" ;; *) echo $"Usage: $0 {start|stop}" exit 1 esac -------ここまで------ ・自動起動に追加 # chmod 755 /etc/rc.d/init.d/postgresql # chkconfig --add postgresql  2.15 rootユーザでpostgresユーザにパスワードを設定する # passwd postgres ← 現環境は パスワード:********  2.16 データベースを起動する。 $ pg_ctl start  2.17 DBを作成する。 $ psql postgres=# create database tdb postgres=# \q ****************** 何か気付いた点がありましたら、アドバイス頂けますでしょうか。 よろしくお願いします。