リモート接続ができない

このQ&Aのポイント
  • ネットワークを介したリモート接続でエラーが発生しました。
  • サーバマシン上では同じコマンドが正常に動作しています。
  • 対処として、postgresユーザの登録やポート番号の確認、設定ファイルの変更などを行いましたが解決しませんでした。
回答を見る
  • ベストアンサー

リモート接続ができない

初質問です。よろしくお願いします。 <問題> ネットワークを介したリモート接続で以下のエラー。 (以下は、クライントPCで psql を実行したときのものです。) D:\Program Files\Download Files\psql>psql -h 192.168.0.100 test Connection to database 'test' failed. connectDB() -- connect() failed: No error Is the postmaster running (with -i) at '192.168.0.100' and accepting connections on TCP/IP port '5432'? ・サーバマシン上での同じコマンドは以下のとおりOKです。 [postgres@localhost data]$ psql -h 192.168.0.100 -l List of databases Name | Owner | Encoding -----------+----------+---------- postgres | postgres | EUC_JP test | postgres | EUC_JP (4 rows) <行った対処> ・postgresユーザは、LINUXユーザでも登録済み ・ping 192.168.0.100 は Reply があることを確認 ・サービス名 postgres のポート番号を/etc/servicesで 5432 を確認 ・postmasterを'-i'付きで起動(pg_ctl -w start -o '-i') ・psコマンドにて、'-i'付きで起動を確認 ・postgresql.conf にて、"listen_adresses = '*'"を設定 ・pg_hba.conf にて、"host all all 0.0.0.0/0 trust"を追加設定 ・netstatコマンドにて、 tcp *:postgres LISTEN であることを確認 <環境> ・LAN環境  ・BUFFALO無線LANのAirStationを使用。 ・クライアントPCは無線接続、サーバは有線接続 ・サーバマシン  ・CPU:PEN3 800MHz,MEM:256MB ・OS:FedoraCore5  ・IP:192.168.0.100/24  ・PostgreSQL 8.1.2  ・PSQL ・クライアントPC  ・CPU:Cel 650MHz,MEM:384MB ・OS:WindowsXP Pro  ・IP:DHCP  ・PSQL ・Common SQL Environment 1.59

noname#114297
noname#114297

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

  • ベストアンサー
  • nino2
  • ベストアンサー率88% (8/9)
回答No.1

FedoraCore5のセキュリティーレベルの設定を確認してください。 設定はディスクトップ ー 管理 - ファイアーウォール/セキュリティーレベル で起動できます (rootのパスワードが必要です)  1、ファイアーフォールのオプション    Firewallが有効(enable)になっていれば、    他のポートに 5432:tcp を追加します。    Postgresqlの標準は5432ですが、postgresql.confで設定を変更しているのであれば、    変更したポートを入力する  ( セキュリティーを考慮しなければ Disable にしてもOKですが )  これで、接続できなければ、  2 同じくセキュリティーレベルの設定でSELinuが Enforcingに なっていたら   Permissive か 無効にしてみてください。    私はこれで接続できました

noname#114297
質問者

お礼

nino2 様 ご回答くださりありがとうございました。 Firewallの設定(iptables)を変更し 5432ポートを開放しましたら、 接続できました。

関連するQ&A

  • postmasterについて

    VineLInux+PostgreSQL7.1.1で動かそうとしています。 ところが、インストール、initdbまでは出来たのですが、 psql等のコマンドを実行すると、以下のように [post@togane bin]$ ./psql -l psql: connectDBStart() -- connect() failed: 接続を拒否されました Is the postmaster running locally and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'? と、表示されます。 postgres.confでportをデフォルト以外で15432と設定しています。 他にもpostmasterが動いているかを確認するために pg_ctlコマンドを実行したのですが、 [post@togane bin]$ ./pg_ctl -w start pg_ctl: Another postmaster may be running. Trying to start postmaster anyway. pg_ctl: cannot start postmaster Examine the log output. と、エラーが出てしまいます。 今、私が参考にしている本は 石井達夫著 PostgreSQL完全後略ガイド 技術評論社 です。この本にある通り進めていったつもりなのですが うまく動かないので困っています。 どなたか御指導の程宜しくお願いします。

  • tcpip_socketの設定をするとpostgres起動時にエラーになる。

    開発によるテストで外部からtcp/ip接続を行いたいので、 tcpip_socket = true という項目をpostgresql.confに追加してみましたが、 postgres起動時に以下のようなエラーにり起動できません。 起動時のコマンド: pg_ctl -D /usr/local/pgsql/data start -w -o "-S -i" エラー: FATAL: unrecognized configuration parameter "tcpip_socket" postmaster (PostgreSQL) 8.1.9 何か原因分かりますでしょうか。

  • PHPでPostgreSQLに接続できない。

    PHPでPostgreSQLに接続しようとすると、 エラーメッセージが出て接続できません。 コマンドプロンプトからの接続は可能です。 環境:PHP5、Apache2.2、PostgreSQL8.24 全て同じサーバにインストールしています。 ********************************************* コマンドプロンプト ********************************************* >psql -U postgres -h localhost test >Password for user postgres::testpass >Type: \copyright for distribution terms >\h for help with SQL commands >\? for help with psql commands >\g or terminate with semicolon to execute query >\q to quit > > >test=# ********************************************* ↑問題なく接続できます。 ********************************************* ********************************************* PHP ********************************************* <?php $con = pg_connect("host=localhost dbname=test user=postgres password=testpass"); ?> ********************************************* エラーメッセージ 12行目は「pg_connect」のところになります。 Fatal error: Call to undefined function pg_connect() in C:\Program Files\Apache…test.php on line 12 ********************************************* php.ini ファイルはextension=php_pgsql.dll をアンコメントしてあります。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PostgreSQLのpsqlでユーザの扱いがうまくいかない

    こんにちは ただいま、PostgreSQL7.2.3をインストール(Redhat7.3)し、これからpsqlを使い、SQL操作をしようとしていたところですが、psqlと入力すると "psql: FATAL 1: Database "postgres" does not exist in the system catalog."となります。 PostgreSQLのユーザは "postgres","nobody"です。 現在、postgresからpostmaster -Sで起動しています. 下記に端末で行った作業内容をコピーしてみました。 今回インストールの参考にした書籍は"PHPxPostgreSQLで作る最強Webシステム」石井達夫著です。この本の手順に従ったつもりですが、うまくいきません。 [postgres@www root]$ postmaster -S [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ select dtname from php bash: syntax error near unexpected token `from' [postgres@www root]$ select dtname from template0 bash: syntax error near unexpected token `from' [postgres@www root]$ [postgres@www root]$ psql select dtname from php psql: warning: extra option from ignored psql: warning: extra option php ignored psql: FATAL 1: Database "select" does not exist in the system catalog. [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ psql psql: FATAL 1: Database "postgres" does not exist in the system catalog.

  • postgrsqlを別のディレクトリに初期化したい

    postgrsqlを別のディレクトリに初期化したい Cent osのデータベースサーバーの選択としてpostgrsqlをインストールしました。 データは /var/lib/pgsql/data にできました。 /varの空きが少なかったので、/var/lib/pgsql/dataを削除し、 ルートに/pgsqlを作成し、そこに初期化しました。 >initdb -E UTF8 -D /pgsql/data すると、/pgsql/dataに初期データが生成されましたが、 いつの間にか/var/lib/pgsql/dataにも出来ています。 [root@linuxpc ~]# ls -pl /pgsql/data 合計 108 -rw------- 1 postgres postgres 4 9月 8 15:54 PG_VERSION drwx------ 5 postgres postgres 4096 9月 8 15:54 base/ drwx------ 2 postgres postgres 4096 9月 8 15:54 global/ drwx------ 2 postgres postgres 4096 9月 8 15:54 pg_clog/ -rw------- 1 postgres postgres 3396 9月 8 15:54 pg_hba.conf -rw------- 1 postgres postgres 1460 9月 8 15:54 pg_ident.conf ・・・略・・・ -rw------- 1 postgres postgres 13793 9月 8 15:54 postgresql.conf [root@linuxpc ~]# ls -pl /var/lib/pgsql/data 合計 132 -rw------- 1 postgres postgres 4 9月 8 15:55 PG_VERSION drwx------ 5 postgres postgres 4096 9月 8 15:55 base/ drwx------ 2 postgres postgres 4096 9月 8 16:02 global/ drwx------ 2 postgres postgres 4096 9月 8 15:55 pg_clog/ -rw------- 1 postgres postgres 3182 9月 8 15:55 pg_hba.conf -rw------- 1 postgres postgres 1460 9月 8 15:55 pg_ident.conf ・・・略・・・ -rw------- 1 postgres postgres 13793 9月 8 15:55 postgresql.conf -rw------- 1 postgres postgres 57 9月 8 16:02 postmaster.opts -rw------- 1 postgres postgres 45 9月 8 16:02 postmaster.pid どちらが有効なのでしょうか? /var/lib/pgsql/data側は要らないのですが。

  • Linux上のpostgreSQLデータをWindowsでみたい

    サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out  サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out   (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが  テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。

  • TCP/IP接続

    OS:fedora7 postgresql:8.2.5 ClientPC:windowsXP にてpgAdminIIIで接続したいのですが、接続できません。 エラー内容は 「server doesn't listen・・・・accepting TCP/IP connections on port 5432?」 という感じです。 postgreの起動時には /etc/rc.d/init.d/postgresql start -i ってな感じで「-i」オプションはつけてますし、 pg_hba.confにも host all all 自PCのIPaddress/24 trust ってな感じで、 自分のPCからのアクセスを許可するように設定してます。 あと、いろいろ自分なりに調べると、 postgresql.confの tcpip_socket = true にすべきというのを知りましたが、 このような項目はありません。 また記述して起動するとエラーとなります。 あとは listen_addresses = '*' port = 5432 としています。 他に設定し忘れているものがあるのでしょうか? もしくは、何か確認すべきものありますでしょうか? ご存知の方おられましたらご教授願います。 よろしくお願いいたします。

  • pg_dumpの文字化け

    PostgreSQLのpg_dumpを用いたバックアップで困っています。 OSはVineLinux 2.2.17-0vl10です。 あるサーバ(PostgreSQL7.0.2)のデータベースtest_db(EUC_JP)に対して、 pg_dump -D -v -i -f test.dump test.db でダンプファイルを作成しました。 COPYでは不確実な場合があるということでINSERT文で出力しました。 (データの日本語の部分が数字に変換されています) それを別のサーバ(PostgreSQL8.2.5)のデータベースtest2_db(EUC_JP)にリストアしました。 psql test2_db < test.dump すると、"(株)"という文字を含む文字列が化けてしまっていました。 同じレコードの他のカラムは大丈夫です。 このような場合の対策がありましたら教えていただきたいと思います。 宜しくお願いします。

  • postgresに接続できない

    環境は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 です。 ご教示して頂けたら幸いです。

  • postgresのリストアでDBを自動作成する方法

    質問させてください。 例えば、以下のコマンドを実行してpostgreSQLでリストアをするとします psql -h localhost -U postgres -d testdb この場合、testdbというDBを作成していないと、エラーになります。 DBまで自動的に作成するコマンドはありませんでしょうか。 psql、pg_restoreの両方でお聞きしたいです。