• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースへのアクセスができない)

データベースへのアクセスができないエラーが発生する

このQ&Aのポイント
  • データベースへのアクセスができないエラーが発生し、コネクションの取得ができません。
  • エラーの解決方法として、接続情報の修正やファイアウォールの解除を試しましたが、変化はありませんでした。
  • postgreSQLのバージョンは8.4を使用しており、プラットフォームはAndroidです。JDBCを使用しているため、問題はないと考えています。

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

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

通りすがりです。 確認を実施していただいてありがとうございます。 さて、当方の環境として確認しましたのは、以下のようになっております。 1.windows版 postgres8.3 2.linux版 postgres8.3  postgres.confの中身を確認しましたがいずれも、tcpip_soketなるパラメータ  は存在しませんでした。ただググってみますと、7.4.5の時代にはあったようです。  なお、接続のために設定した内容については以下のようにしました。  1.windows版     特になし  2.linux版(SentOS5.1)    postgres.conf     listen_addresses=* '受付IPアドレスを追加する。(この場合無条件に受付) port=5432 '規定値 max_connections=xxx '規定値 100 データベースサーバに同時接続する最大数     unix_socket_permissions 規定値 0777 ユーザとグループのみ接続を許可すに変更    pg_hba.conf host all all 192.168.1.x/32 password      'メンテナンス対象クライアントのアドレスを設定する。なお接続はパスワードを要求する。 以上の設定で接続が確認されました。  接続の確認は、LAN上のwindowsPCから、pgadminにより確認。  phadminにより接続確認ができた場合には、あとはプログラムの問題なので、そこで切り分け。  といったぐらいです。     クライアント側からの接続方法も言語、バージョンによりまたは、記述ミス等もあると思いますので  接続できない場合には、一応疑って色々と試してみます。   なお、postgress8.4のマニュアルにも、特にTCPIP接続については  基本有効となっており、オプションとしてsslの設定が必要云々を記述されております。  おそらく、昔、この記述があったが最新版において無くなったのではないでしょうか?  そちらの環境で、pgadminによる(その他接続方法でもかまいません)接続試験はご確認された  のでしょうか?  参考までに、接続に関するパラメータの説明は、   http://postgresql.jp/document/current/html/runtime-config-connection.html   項 18.3.1 を参照ください。    8.4版のマニュアルです。     

suou3983
質問者

お礼

ToOrisugaru様 環境まで構築していただいて本当に感謝しております。 tcpip_socketの件ですが、postgreSQLのバージョンが8になってから 項目名がガラリと変わったそうです。 例: tcpip_socket → listen_addresses 以下のサイトに詳細が乗っておりました。 http://journal.mycom.co.jp/special/2004/postgres8/003.html このlisten_addressesを変更することにより、無事接続が確認できました。 ありがとうございました。

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

その他の回答 (1)

回答No.1

はじめまして、通りすがり と申します。 わたくし、Androidは知らないのですが、上記接続文字列のところで  Connection con = DriverManager.getConnection   ("jdbc:postgresql://127.0.0.1:5432/db_test","postgres","PASS"); 3つのパラメータで渡しているように見えるのですが、ここはひとつの文字列として 渡さなければならないのではないでしょうか?その他接続方法を見ても、3つのパラメータとして 渡してるものは、見当たらないのですが.. OLE DBプロバイダ Provider=PostgreSQL OLE DB Provider;Data Source=localhost;Location=         [データベース];User ID=[ユーザID];Password=[パスワード]          ↑ ひとつの文字列として渡してる。パラメータ区切りには、”;”を使用 ODBCプロバイダ  Driver={PostgreSQL};Server=localhost;Database=[データベース];UID=[ユ          ーザID];PWD=[パスワード];Port=5432;          ↑ ひとつの文字列として渡してる。パラメータ区切りには、”;”を使用          ODBCもoledbと同様 npgsql "Server=127.0.0.1;Port=5432;UserId=joe;Password=secret;Database=joeda ta;");          ↑ ひとつの文字列として渡してる。パラメータ区切りには、”;”を使用          npgsqlもoledbと同様 付属のサンプルより

suou3983
質問者

補足

ご回答ありがとうございます。 コネクションの取得関数.getConnectionですが、 Connection java.sql.DriverManager.getConnection(String url, String user, String password) throws SQLException 上記のように3つの引数を必要としているため、現在の記述で問題ないと考えております。 また、原文の内容に追加して質問なのですが、 >あと、tcpipによる接続を許可しなければならないため、postgresql.conf を編集し、 >tcpip_socket=false を >tcpip_socket=true に変える >という記述がありましたが、 >postgresql.conf に tcpip_socket という項目はみつかりませんでした。 以上のtcpip_socketという項目の設定がどうしても必要みたいなのですが、 これは本当にpostgresql.confの中に存在するのでしょうか。 その他のファイルに記述されているという可能性はないのでしょうか。

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

関連するQ&A

  • 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 何か原因分かりますでしょうか。

  • 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 としています。 他に設定し忘れているものがあるのでしょうか? もしくは、何か確認すべきものありますでしょうか? ご存知の方おられましたらご教授願います。 よろしくお願いいたします。

  • Common SQL Environment で接続できません。

    Common SQL Environment を使い、RedHat9にインストール時に自動的に入れたPostgreSQLに接続しようとすると、 connectDB() connect() feild:No error Is the postmaster running (with -i) at '192.168.10.5' and accepting connectons on TCP/IP port'5432'? と、エラーがでて、接続できません。 pg_hba.confには、 host all xxxxx 192.168.10.2 255.255.255.0 trust を追加。 postgresql.conf では、 tcpip_socket = true port = 5432 のコメントを外しています。 他に、何か必要なのでしょうか? あちこち情報を探しているのですが、なかなか見つからなくて。 よろしくお願いします。

  • postgreSQLの初期設定について

    現在fedoracore5を導入し、postgre8.1の初期設定を行っております。 インターネットの説明にはpostgresql.confに『tcpip_socket = true』の設定を追加すると記載さてれております。 しかし、そのような記載を行わなくても別端末からssh接続で操作することが可能でした。 V8.1からpostgresql.confファイルの編集はしなくてよい事になったのでしょうか?また、fedoracore5の導入時に入っているpostgreSQLのデフォルトバージョンはいくつなのでしょうか? 今回はFedoraCoreからyum installで導入したのですが、これは最新のモジュールをダウンロードし、インストールしているという認識でよいのでしょうか? 質問ばかりとなてしまい大変申しわけないですが、どなたかご回答をお願いいたします。

  • Linux+PostgreSQLでの設定

    こんにちは。 Linux+PostgreSQLでpg_hba.confの設定がよく分からず困っています。 リモートからは使用せず、localhostのみの接続を許可したいのですが、 どのように設定すればいいのでしょうか? CentOS5+PostgreSQL8.1.9です。

  • JSPファイルからデータベースにアクセスできない

    以下のサイトを参考にして、JSPからデータベースにアクセスして ブラウザに表示させようとしています。 http://www.atmarkit.co.jp/fjava/rensai/jsp10/jsp10.html 実行環境は以下です OS: Vine Linux 4.1 PostgreSQL: version 8.2.5 Tomcat: version 5.5.25 Java: Java 2 SDK, standard Edition, version 1.5.0_13 ブラウザからjspファイルにアクセスすると次のエラーがでてきます ーーー エラー文 ーーー HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /dbaccess.jsp:16 13: db.open(); 14: 15: // メンバーを取得 16: ResultSet rs = db.getResultSet("select * from member"); 17: 18: // メンバー一覧表示用のテーブル 19: String tableHTML = "<table border=1>"; Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 原因 javax.servlet.ServletException: ERROR: relation "member" does not exist (略) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 原因 org.postgresql.util.PSQLException: ERROR: relation "member" does not exist org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548) (略) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) ーーー ここまで ーーー 自分が行った手順なんですが、 1、postgresユーザで'sampledb'というdbを作り、そのなかにmemberという テーブルを作成し、select * from member; を実行したところテーブル はありました。 2、MyDBAccess.javaは参考サイトとほぼ同じです。 コンストラクタの設定のところを以下のようにしました。 ーーーーーーーーーーーー public MyDBAccess() { driver = "org.postgresql.Driver"; url = "jdbc:postgresql://localhost:5432/sampledb; user = "postgres"; password = "********"; } ーーーーーーーーーーーー コンパイルも通ったので TOMCAT_HOME/webapps/####/WEB-INF/classes/atmarkitに クラスファイルを置きました。 3、jspファイルはdbaccess.jspという名前でそのまま使いました。 TOMCAT_HOME/webapps/####/dbaccess.jsp 4、/usr/local/pgsql/data/postgresql.confの #listen_addresses = 'localhost' を listen_addresses = '*' に書き換え、その後に $ pg_ctl reload としました。 5、ブラウザから "http://localhost:8080/####/dbaccess.jsp" にアクセスするとエラーがでました。 例外の部分のエラーはいろいろいじっていると出たり出なかったりですが、 "relation "member" does not exist"というエラーは消えません。 自分でいろいろ調べてみたのですがうまくいかなくて行き詰まってしまいました。 どうか助言や解決策があれば教えてください。 お願いいたします。

  • JDBCのバグ?それともプログラム(Java)のバグ?

    JavaからJDBC経由でPostgreSQLにSELECT文を発行し、 結果を受けて更に処理をするプログラムを作成しております。 その際、SELECTの結果をResultSet.next()メソッドを使い、 while文で結果の行数分処理をしようとしております。 しかし、複数行SELECT文の結果があるにもかかわらず、 1回のループで終わってしまい、 後は下記のExceptionが発生してしまいます。 Exceptionを読む限りでは、コネクションが閉じられていると分かるのですが、 プログラムでは一番最後のステップでデータベースとの切断をしております。 この様な現象のときは、JDBCが悪いのでしょうか?それともプログラムのつくりが悪いのでしょうか? 【 以下サンプルソース 】 Connection con = null; Statement st = null; ResultSet rs = null; try{ Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection(jdbc:postgresql://localhost:5432/hoge?user=hoge&password=hoge); st = con.createStatement(); rs = st.executeQuery("select hogehoge from hogerake"); // 必ず複数行戻ります。 while(rs.next()){ // 処理 } con.close(); st.close(); rs.close(); }catch(Exception e){ e.printstackTrace(); } 【 以上サンプルソース 】 【 以下コンソール 】 org.postgresql.util.PSQLException: Connection is closed. Operation is not permitted. at org.postgresql.jdbc1.AbstractJdbc1ResultSet.next(AbstractJdbc1ResultSet.java:134) at jp.co.comsys.felica.ExitManagement.main(ExitManagement.java:10) 【 以上コンソール 】

  • Tomcat+Postgresql 起動時のエラー

    以下のようなエラーが発生するのですが どういった原因が考えられるでしょうか? よろしくお願いいたします。 環境 postgresql-7.4.12 tomcat5.0 jdk1.4.2 以下、プログラムログ [FATAL] 2011-02-17 08:25:41 [TP-Processor6] org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. [WARN ] 2011-02-17 08:25:41 [TP-Processor6] java.lang.RuntimeException: org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. [FATAL] 2011-02-17 08:25:41 [TP-Processor3] org.postgresql.util.PSQLException: An I/O error has occured while flushing the output - Exception: java.net.SocketException: Broken pipe Stack Trace: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124) 以下、catalineログ -- [GC 1147257K->973413K(2073856K), 0.1046160 secs] org.postgresql.util.PSQLException: The backend has broken the connection. Possibly the action you have attempted has caused it to close. at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:168) at org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:128) at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:101) at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43) at org.postgresql.jdbc1.AbstractJdbc1Connection.execSQL(AbstractJdbc1Connection.java:875) at org.postgresql.jdbc1.AbstractJdbc1Connection.setAutoCommit(AbstractJdbc1Connection.java:1266) at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:266) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:338)

  • ODBCテストエラー(pg_hba.conf)

    おせわになります。 早速ですが質問です。 -------------------------------------------------- 仮想PC(VMWare)側 CentOS 5.6 + PostgreSQL 9 実PC Win XP -------------------------------------------------- と言う環境で、ODBC接続のテストを行おうとすると、 「FATAL:no pg_hba.conf entry for host "xxx.xxx.xxx.xxx", user "xxx", database "xxx", SSL off」 と表示されます。 調べたところ"pg_hba.conf"に修正が必要とのことですが、"pg_hba.conf"なるファイルが見付らず、代わりに?"pg_hba.conf.sample"と言うファイルが存在します。 場所は"opt/postgreSQL/9.0/share/postgresql"です。 とりあえず、同じフォルダにコピーを作成してリネームし、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述も追加しましたが、結果は変わらずでした。 そこで、 -------------------------------------------------- 1."pg_hba.conf"が見付らない時点で、何かおかしい(セットアップエラー?)のか? 2.同じフォルダにコピーを作成してリネーム、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述追加は正しいのか? 3.2が正しいのであれば、ODBC接続テストでこのエラーが出る原因には何が考えられるか? -------------------------------------------------- が解る方はおみえでないでしょうか? 因みに、仮想PCのファイアウォールは無効にしてあり、実PCからのPingが飛ぶのも確認しております。 以上、よろしくお願いいたします。

  • JDBCが見つからないとメッセージが出る

    PostgreSQLをバージョン8.2から9.2にUPし、Tomcatをバージョン5から7にUPしました。 そのほか、OSはWindows7でローカルシステムを構築中です。 実行すると、HTTPステータス500javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory] とエラーが出ます。 以下の環境設定の間違いと思われますが、どこを直せばよいかわかりません。 よろしくご教授ください。 PostgreSQLは、C:\Program Files\postgresql9.2に配置しました。 Tomcatは、C:\Tomcat7に配置しました。 システムはC:\Tomcat7\webapps\test1に配置しました。 JDBCドライバは、postgresql-9.1-901.jdbc3.jar と postgresql-9.1-901.jdbc4.jar を C:\Tomcat7\libnにコピー&ペーストしました。 接続の定義は、C:\Tomcat7\conf\catalina\localhost に test1.xmlファイルを作りました。 以下がその記述です。 <?xml version='1.0' encoding='utf-8'?> <Context path="/test1" reloadable="true" docBase="C:\Tomcat7\webapps\test1" workDir="C:\Tomcat7\work" > <Resource name="jdbc/RDBMS" auth="container" type="javax.sql.DataSource" debug="1" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="org.postgresql.Driver" username="postgres" password="postgres" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:postgresql://localhost:5432/LocalDB" removeAbandoned="true" removeAbandonedTimeout="300" /> </Context>

Control center 3の接続について
このQ&Aのポイント
  • MFC-7840WのControl center 3の接続に関する問題と解決方法
  • Windows10を使用し、無線LANでMFC-7840WのControl center 3を接続する際のトラブルについて
  • MFC-7840WのControl center 3で受信したファックスの接続が遮断される問題の対処方法
回答を見る