• ベストアンサー

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 ****************** 何か気付いた点がありましたら、アドバイス頂けますでしょうか。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • postgres に接続できない

    PHP4とpostgrs8.0を利用しています。OSはWINDOWS2000です。 $DB_SERVER="localhost"; $Port = "5432"; $DB_NAME="test"; $DB_UID="postgres"; $DB_PASS="abc"; define("DB_CONECT","host=$DB_SERVER port=$Port dbname=$DB_NAME user=$DB_UID password=\"$DB_PASS\""); という設定で pg_connect(DB_CONECT) の接続でエラーが発生します。 Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in c:\*****.php on line 12 なぜでしょうか? pg_hba.confの設定で host all all 127.0.0.1/32 md5 を host all all 127.0.0.1/32 trust に変更すると接続できるのですが。 それは問題ないのでしょうか? またレンタルサーバーのpostgresを利用する場合、 その設定も個人で変更できるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • DNSクライアントの設定

    vm上のcentosから自作のDNSサーバーへの接続を試しているのですがうまくいきません。 クライアントの /etc/nsswitch.confをhosts: dns /etc/resolve.confをnameserver 自作のDNSのIPアドレス と設定したのですが192.168.1.1のDNSに接続されてしまいます。

  • クライアントのODBCがつながらない

    サーバーWindows2000+postgreSQL8.2.4でクライアントWindowsXp+postgreSQL ODBC ANSI 8.2.5 サーバーのファイルDSNは設定できましたが、クライアントが「指定したファイルデーターソースパレメータを使用して接続することはできません・・」でつながりません。 サーバー:Server1 データベース名:postgres ユーザー名:postgres パスワード:abcde 何か、間違っていますか?サーバーはネットワークから見える状態です。助けてください!

  • netstat実行時のlocalhost.localdom:postgresの意味

    postgresをlocalhost以外から接続したいと思い、pg_hba.confに host all all XXX.XXX.XXX.XXX/32 trust と設定したのですが接続できず困っています。 netstat -l -A inetを実行すると tcp 0 0 localhost.localdom:postgres *:* LISTEN と表示されますが、Local Addressに「localhost.localdom:postgres 」と表示されるのは、localhostのみpostgresの接続が許可されているという意味でしょうか?

  • Postgresでlocalhost以外の接続がはじかれる

    Postgresでlocalhost以外の接続がはじかれる Postgresにlocalhost以外から接続を行うと はじかれてしまうようなのですが、 外部からの接続を許可するようにすることは できますか? 当方レンタルサーバでDBの保守はブラウザ版のphpPgAdmin で行っております。 どうぞ、よろしくお願いいたします。

  • DBIを使用して物理的に分かれているPostgresに接続するには

    こんにちは。 WebサーバーとDBサーバー(postgres)があって、 WebのPerlプログラムからDBIを使用してのDB接続方法がわからなくて困ってます。 Webサーバーと同じPCにpostgreも入っている環境で動作してましたが、 DBサーバーを独立させることになったのですが connectの記述方法がわからないのです。 $dbh = DBI->connect("dbi:Pg:dbname=test", $user_name, $pass); 今まではこのような記述でOKでした。 しかし、今度は物理的に別れているので、 DBサーバーを指定するIPアドレスを記述する必要があるのかな、と思い (WebとDBサーバーはLANで直につながっています) $dbh = DBI->connect("dbi:Pg:dbname=test:host=XXX.XXX.XXX.XXX", $user_name, $pass); 等を試してみたのですがダメでした。 Webサーバー側のDBI・ドライバ設定は正しく動作しています。 (DBI->available_drivers;でドライバの列挙は正しく取得できているので) もちろんDBは正しく作成されています。 (DBサーバーで作ったユーザーは、DBログイン時にPassがいらない設定になってますが) 色々調べてみたのですが、IPアドレスを指定してのDB接続等の情報が どうしてもみつかりませんでした。 どなたかご存知の方、ぜひともご教授ください。

  • CentOS7から外部サーバーのOracle接続

    CentOS7からJqueryなどを使って、WEBページ上でボタンなどを押したら、別サーバー上のOracleデータベースのデータを取得したいと考えています。 ただ、サーバーIPアドレスや、サーバー名、DB名などを指定して接続では接続できなくて、素人の質問かと思いますが、どのような設定?をすればCentOS7からOracleサーバーへのDB接続ができて、データを取得することができるのでしょうか。 教えていただけましたら幸いです。 足りない情報などございましたらお聞きください。 どうぞ宜しくお願いします。

  • クライアント端末にも情報保持できるのか?

    はじめまして。ご存知の方がいましたら教えてください。postgresにてサーバと通信しない出来ない場合に備えてクライアント側にもDBを持たせる事って出来るのですか?当然、容量等も影響してくるかと思うのですが。 それとプログラミング等でクライアント側に自動でDB設定とかが出来るのでしょうか?数が多いので自動化したいのです。 お手数かけますがよろしくお願いします。

  • VPNクライアントからSQLへ接続できない

    2拠点(本社-支店)間をハードウエアVPNで接続しております。 VPN自体の接続は正常に機能しています。 支店側のクライアントPCから業務アプリケーションを使って、本社SQLサーバーのデータベースを開こうとしても、「サーバー、フォルダが見つからない」と表示され、データ接続できません。 どのように対処したらよいのか、ご助言をお願い致します。 支店クライアントからアプリでDBファイルを開く際には、\\192.168.x.xxx\DBnameとSQLサーバーPCのローカルアドレス、DB名称を直接入力し、指定しています。 また、本社側のルーター設定で、SQLポートは開放しています。 支店クライアントPCで、ブラウザを起動し、アドレス欄に本社サーバーPCのローカルアドレスを入力すると、サーバーPCの共有フォルダは表示されます。 説明が不足してる部分もあるかと思いますが、宜しくお願い致します。

  • WMWare構成でIPが変わっても、クライアントからDB接続したい

    WMWare構成でIPが変わっても、クライアントからDB接続したい お世話になります。 有識者の方、良い方法(設定)があれば、お教え下さい。 マシンは物理的に2台、VMWare上の仮想を含めると3台構成。 IPはインターネット接続契約をしているプロバイダのルータから 取得している(たとえばフレッツ光のルータ)。 VMWare上で動いているLinuxにOracleDBが入っており、 クライアントからDB接続をしている。 毎日サーバは電源OFFするため、DHCPによるIP割り当てが 変わる可能性がある。 IPが変わっても、クライアントの設定変更無しにVM上のDBにアクセスしたい。 (IPが変わるたびにクライアントのDB接続設定(tnsnames.ora)を 変更したくない。) なお、クライアントはインターネットにも接続し、 ホームページを閲覧したい。 ?サーバ ホスト  OS:Windows2003Server  コンピュータ名:TEST2003  IP:DHCPにて取得 ?サーバ ゲスト ※VMWare上  OS:RedHat Linux ES 3.0  コンピュータ名:TESTRHEL  IP:DHCPにて取得  OracleDBインストール済み ?クライアント  OS:WindowsXP  コンピュータ名:TESTCLXP  IP:DHCPにて取得  OracleClientインストール済み  ※このPCから?ゲスト上のDBに毎日変わりなく接続したい。 なお、プロバイダから固定でIPを取得するなど、 追加で費用が発生することはしたくない。 以上、よろしくお願いいたします。

このQ&Aのポイント
  • 先日彼氏と宿泊先で一緒にお風呂に入った際、コンタクトを外し入れていたが、明るい場所で確認しようとした際に手から滑り、キャップが外れ床とカーペットに液体が少し広がってしまった。
  • 彼氏はその状況を察し、ため息をつきながら掃除をしてくれたが、後で謝罪した際にはなぜそのような態度をするのかと問われ、注意が足りないと言われた。
  • ドジでそそっかしいタイプではあるが、これまで大きなミスはなかったため、イライラされるほどの内容ではないかと疑問に感じている。
回答を見る