web-dev-qa-db-ja.com

Eclipse Data Tools PlatformからPostgresql 9.2に接続する

目標:私の目標は、PostgreSQL内でSQLコードを記述してPostgresqlデータベースにクエリを実行することです。 Eclipse内でクエリを記述したいのは、RまたはPythonコードを記述して、データに対して統計分析を実行するためです。

ソフトウェアの詳細:

  • 私はWindows XPに取り組んでいます。
  • 私のPostgresqlデータベースはローカルのハードドライブにインストールされています。 Postgresql 9.2.2を使用しています
  • データツールプラットフォームを備えたEclipse Junoエンタープライズエディション。これは2012年12月19日にダウンロードしたので、すべて最新のソフトウェアです。
  • jdk 1.7
  • jre 1.5
  • jre 7
  • postgresql-9.1.901.jdbc4.jar

方法:Eclipse内で開始するには、「ファイル」、「新規」、「その他」を選択します。 「接続プロファイル」の下で、「接続プロファイル」を展開して選択します。新しい接続プロファイルダイアログウィザードが表示され、プロファイルタイプのリストからPostgreSQLを選択します。 PostgreSQL922という名前を付けて、[次へ]ボタンをクリックします。

「新しいJDBC接続プロファイル」ダイアログが表示されます。 [ドライバー]プルダウンメニューで、以前に作成した「PostgreSQL922」を選択します。次に、[新しいドライバー定義]のアイコンをクリックします。

「新しいドライバー定義」ダイアログには3つのタブがあります。最初のタブ「名前/タイプ」の下にはオ​​プションが1つだけあり、それはPostgreSQL JDBCドライバーです。ただし、このオプションのシステムバージョンが8.xであると混乱します。そのオプションが事前設定されている理由はわかりません。 「Jar List」タブの下で、「Remove Jar/Zip」ボタンをクリックして、「Postgresql-8.1-404.jdbc2.jar」ドライバファイルを削除します。次に、「Jarの追加」ボタンをクリックして、新しいドライバー「Postgresql-9.1-901.jdbc4.jar」に移動します。このjarファイルを選択すると、ダイアログボックスの[OK]ボタンがグレー表示されなくなりました。しかし、それは今ではクリック可能です。 [プロパティ]タブの下には、5つの異なる値があります。

  • 接続URL:jdbc:postgresql:// localhost:5432/database
  • データベース名:postgres
  • ドライバークラス:org.postgresql.Driver
  • パスワード:nikolasdad
  • ユーザーID:postgres

次に[OK]ボタンをクリックして、すべての値を受け入れます。これで「新しいJDBC接続プロファイル」に戻ります。ここで[テスト接続]ボタンをクリックすると、「Pingが失敗しました!」というエラーメッセージボックスがポップアップ表示されます。 「詳細」ボタンの下にメッセージが表示されます:

org.postgresql.util.PSQLException: FATAL: database "database" does not exist
    at 
org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.Java:471)
    at 
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.Java:112)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.Java:66)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.Java:125)
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.Java:30)
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.Java:22)
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.Java:32)
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.Java:24)
    at org.postgresql.Driver.makeConnection(Driver.Java:393)
    at org.postgresql.Driver.connect(Driver.Java:267)
    at 
org.Eclipse.datatools.enablement.internal.postgresql.PostgreSQLJDBCConnection.createConnection(Post
greSQLJDBCConnection.Java:87)
    at 
org.Eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBa
se.Java:105)
    at 
org.Eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.Java:54)
    at 
org.Eclipse.datatools.enablement.internal.postgresql.PostgreSQLJDBCConnection.<init>(PostgreSQLJDBC
Connection.Java:47)
    at 
org.Eclipse.datatools.enablement.internal.postgresql.PostgreSQLConnectionFactory.createConnection(P
ostgreSQLConnectionFactory.Java:51)
    at 
org.Eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFa
ctoryProvider.Java:83)
    at 
org.Eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.ja
va:359)
    at org.Eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.Java:76)
    at org.Eclipse.datatools.connectivity.ui.PingJob.run(PingJob.Java:59)
    at org.Eclipse.core.internal.jobs.Worker.run(Worker.Java:53)

これと同じ方法を使用してSQL Server 2005データベースに接続し、それに対するクエリを作成することができました。以前はこれを正しく行いましたが、PostgreSQLでは失敗します。どうすれば修正できますか?間違ったバージョンのPostgreSQLを使用していますか? Eclipse JunoはPostgresql 9.2.2と連動しませんか?

2

(初期)データベース名はJDBC URLから取得されました: "jdbc:postgresql:// localhost:5432/database"

そのURLから「データベース」サフィックスを削除してみてください

2
araqnid

Swasheckとaraqnidに感謝します。それが答えです。

私はEclipseに戻り、古い接続を削除しました。次に、「新しいJDBC接続プロファイル」を使用して新しいプロファイルを作成しました。 Generaプロパティタブで、次の値を選択しました。

Database: Postgres
URL: jdbc:postgresql://localhost:5432/postgres*
User Name: postgres
Password: ***************

*注意:ここでは、swasheckが言及したように、これは一般的な用語のデータベースでした。以前は「データベース」であった場所で「postgres」を交換しました。

次に「接続のテスト」ボタンをクリックすると、問題なく接続されました。鋭敏な観察をありがとうございました。

2