# fehlerhafte PostgreSQL-Verbindung



## buecherschrank (3. Okt 2007)

Hallo,
ich möchte mit JDBC und PostgreSQL umgehen können und habe am Verbindungsaufbau ein Problem:


```
public void verbindungHerstellen() throws SQLException, ClassNotFoundException          { 
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

          //String url = "jdbc:odbc:PostgreSQL";
          String url ="jdbc://postgres:5555/bank";
          con = DriverManager.getConnection(url); 
}
```

Ein Passwort ist der Datenbank nicht zugewiesen; allein mit dem üblichen Benutzernamen "postgres" ohne Passwort hat die getConnection() Probleme; nur allein mit der URL macht die keinen Ärger.

Keine der URLs klappt. Wie muss die genau aussehen?
(Es sollen Daten von einer DB "bank" abgerufen werden.)


Der Server läuft auf Port 5555:

$:/usr/lib/postgresql/8.2/bin$ ./postmaster -i -D /usr/lib/postgresql/8.2/data/ -p 5555
LOG:  Datenbanksystem wurde am 2007-10-02 17:32:17 CEST heruntergefahren
LOG:  Checkpoint-Eintrag ist bei 0/42C424
LOG:  Redo-Eintrag ist bei 0/42C424; Undo-Eintrag ist bei 0/0; Shutdown TRUE
LOG:  nächste Transaktions-ID: 0/593; nächste OID: 10820
LOG:  nächste MultiXactId: 1; nächster MultiXactOffset: 0
LOG:  Datenbanksystem ist bereit
----


Nur an der Verbindung liegen Fehler; die Abfragemethode wird noch nicht ausgeführt.

Fehlermeldung (allein für diese Methode):

Exception in thread "main" java.sql.SQLException: [unixODBC][Driver Manager]Data source name not found, and no default driver specified
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
	at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:207)
	at dbAbfragen.datenbankAbfrage2.verbindungHerstellen(datenbankAbfrage2.java:20)
	at dbAbfragen.datenbankAbfrage2.main(datenbankAbfrage2.java:68)



Danke Euch für Hilfe,
Martin


----------



## Guest (3. Okt 2007)

Hol dir zunächst einen vernünftigen JDBC-treiber für die Datenbank. 
z.B. hier: http://jdbc.postgresql.org/download.html
Verbindungsaufbau ist hier beschrieben: http://jdbc.postgresql.org/documentation/head/index.html


----------



## L-ectron-X (3. Okt 2007)

Kannst auch dich auch mal hier umsehen: http://wiki.byte-welt.net/wiki/Datenbankverbindung_(Java)
Dort werden Aufbau von Verbindungen zu verschiedenen Datenbanken, darunter auch PostgreSQL, anhand von Codebeispielen beschrieben.


----------



## buecherschrank (3. Okt 2007)

Erstmal vielen Dank an Euch. Ich bin mit den Links nun einen gewaltigen Schritt weitergekommen. Nur ein Problem habe ich noch: Die Authentifizierung wird verlangt und mein "postgres" User besitzt keine, die ich kenne. 

Alles in Allem: Wie kann ich dem postgres-User im Nachhinein ein Passwort zuweisen.  droppen und neu creieren wird nicht akzeptiert.
---------------
Ich werde noch verrückt - seit einer Stunde versuche ich einen neuen User mit passwort klarzumachen:

pos1@pos1-PC:/usr/lib/postgresql/8.2/bin$ createuser pos1
Soll die neue Rolle ein Superuser sein? (j/n) n
Soll die neue Rolle Datenbanken erzeugen dürfen? (j/n) j
Soll die neue Rolle weitere neue Rollen erzeugen dürfen? (j/n) j
createuser: konnte nicht mit Datenbank postgres verbinden: FATAL:  Rolle »pos1« existiert nicht

Bei ganz anderen Namen kommt das gleiche bei heraus...

Kann mir jemand von Euch helfen?


----------



## buecherschrank (3. Okt 2007)

STOPP SORRY:
HABE ES HINBEKOMMEN MIT 

postgres=# ALTER USER postgres WITH PASSWORD '....';


----------

