5

PostgreSQLJDBCドライバーを介してUbuntu10.10の8.4DBに接続しようとしています。jdbc:postgresql:localhost:5433/dbnamePostgreSQLはデフォルト以外のポート5433で実行されているため、経由で接続しています。そのため、ポートを指定する必要があります。

postgresql.conf設定するためにすでに編集しましlisten_addresses = "*"た。ローカルホストであっても、JDBC経由で接続するためにTCP/IPを使用していることを理解しています。

私の問題は、パスワードなしでユーザーを作成したことです。でパスワードを指定しないとDriverManager.connect(url)、認証用のパスワードを指定する必要があることを示すエラーが発生します。空の文字列を含め、私が試したすべてのパスワードは、DBでの認証に失敗します。

どうすれば接続できますか?

編集:間違ったポートを介して接続している場合、エラーは次のとおりです。PSQLException:接続が拒否されました。ホスト名とポートが正しいこと、およびポストマスターがTCP/IP接続を受け入れていることを確認してください。正しいポートに接続しようとすると、PSQLExceptionが発生します:FATAL:ユーザー「user」のパスワード認証に失敗しました。これは、以下の受け入れられた回答によって改善されます。

4

2 に答える 2

13

pg_hba.conf認証を要求するように設定しmd5ていて、ユーザーにパスワードがない場合、認証は発生しません。

ALTER USER the_user_name PASSWORD 'give_it_a_password';

または、本当にパスワードが必要ない場合は、そのユーザー/ dbコンボにidentまたは(ローカルホストの場合のみ、安全ではない)認証を使用します。これは通常悪い考えです。パスワードを設定する方がはるかに良いです。trustpg_hba.conf

デモ:

$ psql -q -U postgres postgres
postgres=# CREATE USER nopw;
CREATE ROLE

$ psql -h localhost -U nopw postgres
Password for user nopw:               [pressed enter]
psql: fe_sendauth: no password supplied

$ psql -q -U postgres postgres
postgres=# ALTER USER nopw PASSWORD 'test';
postgres=# \q

$ psql -q -h localhost -U nopw postgres
Password for user nopw:            [entered 'test' then pressed enter]
postgres=> 
于 2012-11-14T00:19:20.600 に答える
1

データベースに接続するには:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    private final String url = "jdbc:postgresql://localhost:5432/dbname";
    private final String driver = "org.postgresql.Driver";
    private final String login = "username";
    private final String password = "";
        private Connection connection = null;
    //...
    try {
    Class.forName(driver);
        connection = DriverManager.getConnection(url,
                login, password);
    } catch (SQLException e) {
        System.out.print(" Unable set the connection!");
    } catch (ClassNotFoundException e) {
        System.out.print(" Unable to load the driver class!");
    }
于 2012-11-13T22:34:45.440 に答える