PostgreSQL i java - problem z połączeniem

0

Witam,
od razu mówię, że przejrzałem inne tematy i nic mi nie pomogły. Chcę też zauważyć, że znam takie portale jak Google.pl i inne. Proszę o konkretną pomoc a nie odsyłanie mnie gdziekolwiek byle tylko było po sprawie.

Chcę nawiązać połączenie z bazą danych na PostgreSQL. W tym cely napisałem prosty kod, który miał nawiązać połączenie.
Oto on:


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

public class Main {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("org.postgresql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/moja_baza", "uzytkownik", "moje_haslo");
        java.sql.Statement stat = conn.createStatement();

        ResultSet rs = stat.executeQuery("SELECT * FROM pracownicy");

          while (rs.next()) {
              for (int i=1; i<8; i++) {
                System.out.print(rs.getString(i) + " ");
              }
              System.out.println();
          }

          rs.close();
          conn.close();
    }

}

Kompilacja bez problemu. Kompiluję, w terminalu tym oto poleceniem:

javac Main.java

A uruchamiam tym:

java -cp .:jdbc.jar Main

po czym dostaję odpowiedź:

Exception in thread "main" org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "uzytkownik"
	at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:291)
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
	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:30)
	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 java.sql.DriverManager.getConnection(DriverManager.java:620)
	at java.sql.DriverManager.getConnection(DriverManager.java:200)
	at Main.main(Main.java:11)

Proszę o jakieś podpowiedzi, bo niestety wszystko co mi przyszło do głowy nie skutkuje. Wydaje mi się, że coś jest nie tak z instalacją PostgreSQL'a.

Postgres działa na Fedorze 14.

0

Sprawdź jeszcze raz login i hasło.

0

Na pewno jest poprawnie, sprawdzałem 10 razy.

0

Wrzuć Connection conn = DriverManager.getConnection("jdbc//localhost:5432/moja_baza", "uzytkownik", "moje_haslo"); do bloku try.
W obsłudze odpytaj wyjątek o szczegóły.
http://jdbc.postgresql.org/development/privateapi/org/postgresql/util/PSQLException.html

0

A za pomocą pgadmina możesz się podłączyć do tej bazy ?

0

Pragnę zauważyć, że w komunikacie błędu jest napisane "IDENT Authentication failed ...". Co oznacza, że baza autentykuje użytkownika tylko po nazwie a nie po nazwie i haśle. Należy w pliku pg_hba.conf zmienić "ident", "ident sameuser" na "md5" i będzie działać

1 użytkowników online, w tym zalogowanych: 0, gości: 1