- ベストアンサー
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" で接続しようとしています。 サーバ側のインストール手順は実際に行った手順を書いてましたが、 添付ファイルのような感じです。 どこがいけないか調べるにはどのようにすれば良いでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
CentOSのファイアウォールでtcp/5432がブロックされていませんか? CentOS上で system-config-securitylevel-tui を実行し、 Other portsにpostgres:tcp を追加してみてください
その他の回答 (1)
- hijikataf9
- ベストアンサー率0% (0/3)
おそらく、ident検査で省かれているものと思われます IPアドレス等が分からないのでなんとも言えませんがpg_hba.confが私には怪しいように見えます。それだと192.168.0.XXXしか繋がらなかったような気がします……IPアドレスがそれで当たっているならば、スーパーユーザー権限を疑ってください どこがいけないかを調べるみたいなものは出来ないと思いますよ 私の場合はコンフィグファイルと睨めっこして、調査していくタイプなので……
補足
ご回答ありがとうございます。 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 ****************** 何か気付いた点がありましたら、アドバイス頂けますでしょうか。 よろしくお願いします。
お礼
ファイアウォールの設定を見直した所、無事接続する事ができました。 大変ありがとうございました。