Keine Datenbankverbindung möglich

Kenan89

Bekanntes Mitglied
Hallo,
dieses Thema existiert bereits im Themenbereich DataTier, da ich es aus versehen da rein gepostet habe.
Vor einigen Tagen habe ich auch darum gebeten, es hier her zu verschieben. Naja, da mein Thema eigentlich hier herein gehört poste ich es noch einmal. Der im Data Tier kann gelöscht werden.

So mein Problem ist, dass ich keine Verbindung zum postgres herstellen kann. Tomcat ist installiert und normale JSP Seiten lassen sich auch ausführen im Browser.

Meine Entwicklungsumgebnung ist Eclipse.
Ich verwende folgendes:
Postgresql Version 8.4
jdbcDriver4
jdk 1.6

Der Code an sich müsste passen, denn ich kann mit dem gleichen Code an dem Rechner meines Kumpels eine Datenbankverbindung herstellen und wir haben die gleichen Versionen. Falls es Probleme gibt mit den Rechten unter Windows 7, wie kann ich das beheben.

Ich bin leider ratlos.

Wer Zeit und Lust hat, kann sich ja meinen Code kopieren, sich die oben genannten Komponenten runterladen und mein Problem rekonstruieren.

Hier der Code, des index.jsp:(mehr Seite gibt es momentan auch nicht. Es geht nur darum eine Connection aufzubauen)
Java:
<%@page import="java.sql.*, java.net.InetAddress" %>

<div style="background-color: yellow">
DB-Connection:
</div>

<%

		Connection conn = null;
		
		String userName = "deinUsername";  //ich benutze den postgres User
		String userPW = "deinPasswort";
		String conURL = "jdbc:postgresql://localhost:5433/deineDatenbank";
		
		
		try{
			Class.forName("org.postgresql.Driver");
			conn = DriverManager.getConnection(conURL, userName, userPW);
			

			out.println("Verbindung");
		}
		catch(Exception e){
			out.println("Keine Verbindung");
			e.printStackTrace();
		}
		finally{
	


		try{
			if(conn!=null){
				conn.close();
			}
		}
		catch(SQLException e){
			conn = null;
		}
	

		}

%>

EDIT:
Ich kriege aufgrund vom stackTrace folgende Exception: org.postgresql.util.PSQLException
Er sagt, das meine Datenbank nicht existiert, obwohl sie im postgres eingetragen ist.

Danke im voraus für Hilfen.
 
Zuletzt bearbeitet:

Kenan89

Bekanntes Mitglied
Alles hier erscheint in roter Schrift in der Console. Er sagt dass er keine passende Property zu meinen Projekten findet?

Code:
26.02.2012 08:52:05 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.6.0_10\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jdk1.6.0_10/bin/../jre/bin/client;C:/Program Files (x86)/Java/jdk1.6.0_10/bin/../jre/bin;C:/Program Files (x86)/Java/jdk1.6.0_10/bin/../jre/lib/i386;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Java\jdk1.6.0_10\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Common Files\Ulead Systems\MPEG;C:\Program Files (x86)\Common Files\Ulead Systems\DVD;C:\Users\xy\Pictures\Downloads\eclipse;
26.02.2012 08:52:06 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Testt' did not find a matching property.
26.02.2012 08:52:06 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:FitnessManagerVersion1.0' did not find a matching property.
26.02.2012 08:52:06 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:KontaktManagement' did not find a matching property.
26.02.2012 08:52:06 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
26.02.2012 08:52:06 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 875 ms
26.02.2012 08:52:06 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
26.02.2012 08:52:06 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
26.02.2012 08:52:06 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
26.02.2012 08:52:06 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
26.02.2012 08:52:06 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/34  config=null
26.02.2012 08:52:06 org.apache.catalina.startup.Catalina start
INFO: Server startup in 604 ms
 
Zuletzt bearbeitet von einem Moderator:

L-ectron-X

Gesperrter Benutzer
Code:
Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
Kannst du damit was anfangen?
Sieht so aus, als ob noch eine Bibliothek fehlt bzw. nicht im Classpath liegt.
 

Kenan89

Bekanntes Mitglied
Leider bringt mich diese Info nicht weiter. Ich habe eigentlich mit Build Path den richtigen Driver eingefügt. Ich habe danach manuel noch mal in den lib Ordner im WEB INF Ordner noch einmal den Driver hereinkopiert.
 

DanZ

Bekanntes Mitglied
Die Meldung ist auch nicht wichtig - die ist Standard bei Tomcat.

Viel interessanter wäre der Stacktrace beim Verbindungsfehler. Bist du sicher das der Name der Datenbank richtig geschrieben ist(Groß/Kleinschreibung etc.)?
 
J

JohannisderKaeufer

Gast
Wenn man google anstrengt und nach "postgresql default port" sucht, stößt man auf 5432.

Daher meine Frage auf welchem Port läuft die DB?

In deinem anderen Thread erwähnst du auch den Port 5432, in deinem Codebeispiel ist es nun die 5433.
 
M

maki

Gast
Hallo,
dieses Thema existiert bereits im Themenbereich DataTier, da ich es aus versehen da rein gepostet habe.
Vor einigen Tagen habe ich auch darum gebeten, es hier her zu verschieben. Naja, da mein Thema eigentlich hier herein gehört poste ich es noch einmal. Der im Data Tier kann gelöscht werden.
Vor einigen Tagen hatte ich dir bereits erklärt dass dein Problem KEIN WebApp Problem ist und deswegen NICHT ins Unterforum "Web Tier" hingehört!

*verschoben*

Hoffentlich verstehst du das diesmal besser anstatt nochmal einen neuen Thread zu diesem Thema aufzumachen..
 

Kenan89

Bekanntes Mitglied
Okay Windows musste ich formatieren wegen einem Virus und habe jetzt alles neu und frisch.
Ich zähle mal auf:

JDK 6
(als Systemvariable JAVA_HOME hinzugefügt)
(Test jsp Seiten laufen unter dem webapps Ordner)
Eclipse EE Indigo

postgres9 installiert
postgresql-9.0-802.jdbc4.jar

(Dann steht bei mir im Eclipse bei JRE System Library in eckigen Klammer: [JavaSE-1.6])

Meine Datenbank: testen(name der db) mit localhost: 5432

Mein Code:
Java:
<%@page import="java.sql.*" %>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
		Connection conn = null;
		
		String userName = "postgres";
		String userPW = "pw";
		String conURL = "jdbc:postgresql://localhost:5432/testen";
		
		try{
			Class.forName("org.postgresql.Driver");
			conn = DriverManager.getConnection(conURL, userName, userPW);
                        out.println("klappt");
			conn.close();
		}
		catch(Exception e){
			out.println("Hmm");
			
		}
		
%>
</body>
</html>

Meine Fehlermeldung in der Eclipse Konsole:
org.postgresql.util.PSQLException: FATAL: Datenbank ?testen? existiert nicht
at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:469)
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: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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Er sagt DB testen existiert nicht obwohl sie vorhanden ist in pgAdmin. Der jdbc treiber 4 ist ja auch nicht falsch für postgres version 9..

Danke für Hilfen im voraus. Da Windows neu installiert ist hoffe ich, dass der Fehler schnell behoben wird.
 
C

Camino

Gast
Hmm, irgendwo was falsch geschrieben? Datenbank unter einem anderen Benutzer angelegt? Zugriffsrechte in der pg_hba.conf?
 

Kenan89

Bekanntes Mitglied
Hmm, irgendwo was falsch geschrieben? Datenbank unter einem anderen Benutzer angelegt? Zugriffsrechte in der pg_hba.conf?

Falsch geschrieben ist nichts.
Datenbank habe ich unter dem postgres User angelegt.
Folglich müsste es doch von den Rechten her im pg_hba.conf passen, oder?

Das einzige was ich nicht gemacht habe ist, dass ich postgresql
nicht als Admin installiert habe, aber das macht er ja automatisch und
das sollte doch nicht die Fehlerquelle sein.
 
C

Camino

Gast
Dann fällt mir leider auch nichts mehr ein, woran es liegen könnte. Vielleicht kommt ja noch ein Datenbank-Experte vorbei...
 

Schrubber

Bekanntes Mitglied
Verhält sich dein postgresql so wie alles andere? Dann würd ich sagen:
über Use versuchen?



Java:
String conURL = "jdbc:postgresql://localhost:5432/";

Und dann halt sowas wie

Java:
Statement stm = conn.createStatement();
stm.executeUpdate("use testen");
 

Kenan89

Bekanntes Mitglied
Leider funktionierte keins von beiden Varianten.

Ich habe das Gefühl er verbindet sich nicht mit postgres. Obwohl Treiber stimmt.

Man ist das nervig :D
 

Kenan89

Bekanntes Mitglied
Was mir jetzt gerade noch einfällt: Ich habe Windows 7 64 Bit, habe aber Eclipse 32 Bit und postgres 32 Bit installiert. Kann es die ursache meines Problems sein? Kann es leider nicht testen, da ich nicht zu Hause bin.
 
C

Camino

Gast
Was mir jetzt gerade noch einfällt: Ich habe Windows 7 64 Bit, habe aber Eclipse 32 Bit und postgres 32 Bit installiert. Kann es die ursache meines Problems sein? Kann es leider nicht testen, da ich nicht zu Hause bin.

Ich hab zwar von allen die 64bit-Versionen, denke aber nicht, dass es daran liegt. Meiner Meinung nach müssten die 32bit und 64bit auch zusammen funktionieren. Vielleicht ist ja bei der Installation oder der Erstellung der Datenbank irgendwas schief gelaufen? Versuch doch mal mit psql und verschiedenen Angaben (User, PW, Datenbank...) in die Datenbank reinzukommen. Vielleicht gibt es ja von psql aus Möglichkeiten, mehr Infos über die angelegten Datenbanken rauszufinden, z.B. wo und wie genau die Datenbank angelegt wurde. Oder du erstellst nochmal einen neuen Benutzer und legst die Datenbank neu unter diesem User an.
 

areafo

Mitglied
Es liegt definitiv an dem 64 Bit Aufruf. Versuch mal ein DSN Namen im C:\Windows\SysWOW64\odbcad32.exe zu definieren und mach darüber den Aufruf.

Alle jdbc Aufrufe gehen ohne Parameter immer an die 64 Bit Treiber im System und nicht an die vorhanden 32 Bit Treiber.

Wir betreuen hier 90 Tausend Windows 7 64 Bit Maschinen. Ich weiss wovon ich rede :D
 
M

maki

Gast
Es liegt definitiv an dem 64 Bit Aufruf. Versuch mal ein DSN Namen im C:\Windows\SysWOW64\odbcad32.exe zu definieren und mach darüber den Aufruf.

Alle jdbc Aufrufe gehen ohne Parameter immer an die 64 Bit Treiber im System und nicht an die vorhanden 32 Bit Treiber.
Du sprichst von ODBC Datenquellen, JDBC type 4 Treiber nutzen kein ODBC oder sonstirgendwelche nativen Bibliotheken.
Auch wäre die Fehlermeldung eine andere.
 

areafo

Mitglied
Ja maki. Er sagt er hat den Treiber im System installiert. Nicht das er Ihn nur verwendet. JDBC ist ja ODBC für Java und mit dem Type 4 Treiber hast du natürlich recht.

Hab mich da oben etwas falsch ausgedrückt.

Es ging um den Aufruf der aus der VM über JDBC auf ODBC ins System geht und da geht es in einem 64 Bit System immer in die 64 Bit Node wenn nicht anders definiert.
 
Zuletzt bearbeitet:

areafo

Mitglied
Naja. Die Infos sind noch zu mau bis auf die Exception. Er hat einen Postgres Fat oder Instant Client auf einem Windows 64 Bit System in 32 Bit installiert. Ich sehe dieses Problem unabhängig von Java jeden Tag an Oracle Fat Clients usw.

Ich kann nur darauf hinweisen. Die Details direkt beim TS kennen wir hier alle nicht. Maki hat recht und ich kann nur mein Wissen beisteuern ^^

Edit:
Der Treiber wird ja auch geladen nur ob die Datenbank existiert nicht Meldung

Hätte vielleicht die zweite gepostete Exception genauer lesen sollen.
 
Zuletzt bearbeitet:
M

maki

Gast
Die Details direkt beim TS kennen wir hier alle nicht.
Eben areafo :)

Deine Ausführung bez. des installiertem Clients (mit dem es zu funzen scheint und welcher vielleciht über ODBC arbeitet) hat mich auf eine andere Idee gebracht...

Würde dem TS mal raten sich den SQuirreL SQL Client zu holen und damit zu versuchen auf die DB zu kommen, den SQuirreL ist auch pures Java, wenn es damit geht, sollte es grundsätzlich auch in jedem anderen Java Programm funzen.
Wenn mit SQuirreL nciht funzt ist wahrscheinlich etwas grundsätzliches falsch entweder an der Db Konfig (Rechte, Ports, etc. ) oder daran wie er versucht von Java aus darauf zuzugreifen.
 

Kenan89

Bekanntes Mitglied
Ich installiere heute die korrekten 64 Bit Versionen und dann hoffe ich, dass es sich erledigt hat.

Übrigens habe ich nur 32 Bit Versionen installiert, weil ich Eclipse 64 Bit installiert habe und dann eine Fehlermeldung bekommen hab. Dann dachte ich, installier gleich postgres auch 32 Bit.
 

Kenan89

Bekanntes Mitglied
Also nach langer Zeit habe ich es endlich versucht. Ich habe postgres für windows 7 64 bit installiert, postgresql 9.0 (der JDBC Driver) heruntergeladen, pgAdmin gestartet, einen neuen lokalen Server eingerichtet und versucht nur zu connecten. Leider sagt er, die Datenbank existiert nicht.

Noch mal zur Erinnerung:
Ich habe Java SE 1.6
postgresql-9.0-802.jdbc4.jar
postgres für Windows 7 64 bit

Mein Code:
Java:
<%@page import="java.sql.*" %>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
		Connection conn = null;
		
		String userName = "postgres";
		String userPW = "xx";
		String conURL = "jdbc:postgresql://localhost:5432/kemal";
		
		try{
			Class.forName("org.postgresql.Driver");
			conn = DriverManager.getConnection(conURL, userName, userPW);
			out.println("OK");
			conn.close();
		}
		catch(Exception e){
                        out.println("Fehler");
			e.printStackTrace();
			
			
		}
		
%>
</body>
</html>

Es erscheint in der Konsole in Eclpse eine PSQLException und da wird mir gesagt, die Datenbank existiert nicht.
 
C

Camino

Gast
Du hattest gesagt, mit psql kommst du in die Datenbank rein. Wie lautet denn der exakte Befehl, mit dem du auf der Konsole in psql reingehst? Also mit welchen Angaben für User und Datenbank? Und wenn du dann in psql drin bist, kannst du dir die Datenbanken auflisten lassen. Ist die gewünschte Datenbank dann dort dabei? Wie hast du die Datenbank überhaupt erstellt und angelegt?
 

Kenan89

Bekanntes Mitglied
Asoo.
Ich gehe immer mit pgAdmin rein und erstelle sie mit der grafischen Oberfläche.
Ich gehe so vor:
Datei -> Server hinzufügen
(Name wähle ich beliebig bei server gebe ich localhost ein)

Ich nehme an, du meinst die sql shell von postgres oder? Wie kann denn damit testen, ob ich eine Verbindung herkriege?
 
C

Camino

Gast
Ja, psql findest du im bin-Verzeichnis deiner PostgreSQL-Installation. Beim Starten dieser Anwendung auf der Konsole kannst du verschiedene Parameter mit übergeben (User, Datenbank....) und dir dann in psql auch anschauen, welche Datenbanken, Tabellen usw. es gibt. Ist zwar etwas gewöhnungsbedürftiger als eine grafische Oberfläche, aber eigentlich ganz OK - und du bekommst auch gleich aussagekräftige Fehlermeldungen angezeigt. Du könntest ja mal schauen, wie und mit welchen Daten du bei psql reinkommst und ob du dann dort die gewünschte Datenbank siehst. Oder mal eine neue Datenbank mit einem neuen Benutzer anlegen...

Kannst ja auch mal hier schauen (oder noch weitere Infos zu psql im Netz suchen):
Informatik - Datenbanken - PostgreSQL - PSQL-Client
Postgres
 

Kenan89

Bekanntes Mitglied
Hmm okay,...
Also ich habe jetzt einfach mal die sqlshell geöffnet(Start->Programme->Postgresql->sqlshell) und folgendes eingegeben:

Server[localhost]: localhost
Database[postgres]: testen
Port[5432]: 5432
Username[postgres]: postgres

Als Fehlermeldung kam:

psql: FATAL: Datenbank >>testen<< existiert nicht

Obwohl ich sie mit pgAdmin sehen kann, denn sie ist unter Server aufgelistet und ich habe sogar eine Tabelle darin angelegt...

EDIT: Da ist vielleicht noch etwas, was ihr wissen solltet:

Ich habe ja Windows 7 64 Bit.
Alle installierten Programme befinden sich normalerweise in Programme(x86). Da ist auch der Postgres Ordner, wobei der bin-Ordner darin leer ist, UND es gibt ja noch den Ordner Programme (ohne x86) in Windows 7. Da ist ebenfalls der Postgres Ordner und darin ist der bin-Ordner schon voll. Unter anderem ist da die psql.exe. Da wird auch beim Starten ein Passwort verlangt und wenn ich das Passwort vom postgres-User, welches ich bei der Installation definiert habe eingebe, erscheint eine Fehlermeldung: Fatal: Passwort Authentifizierung für Benutzer xy fehlgeschlagen. Ich wil mich aber als postgres-User anmelden. Wie kann ich Benutzer wechseln? psql.exe verlangt erst Passwort, so dass ich keine Optionen wie change user habe. Dieser psql.exe ist auch iwie ein anderer als der unter Start->Alle Programme, denn wie gesagt, verlangt er erst ein Passwort, während der andere erst einen Servernamen verlangt..
 
Zuletzt bearbeitet:
C

Camino

Gast
Das hört sich irgendwie so an, als hättest du da noch irgendwelche Reste von deiner vorherigen Installation. Vielleicht ist ja irgendwas beim Installieren schief gelaufen. Kannst ja mal schauen, was in der Systemsteuerung unter Software eingetragen ist. Ansosnten würde ich den Ordner mit dem leeren bin-Verzeichnis wieder löschen. Die Authentifizierung bei PostgreSQL ist in der Datei pg_hba.conf festgelegt. Dort steht welcher User wie auf welche Datenbanken zugreifen darf.

Ich denke, Start->Programme->Postgresql->sqlshell ist das Gleiche wie die psql (kann mich aber auch irren), weil du ja als Ausgabe auch "psql: FATAL: Datenbank >>testen<< existiert nicht" bekommst. Das könnte ja auch bedeuten, dass die Datenbank für den User nicht exisitert, mit welchem du auf diese Datenbank zugreifen willst.

Nimm auf jeden Fall mal das psql.exe aus dem bin-Verzeichnis und versuch dich da als User postgres in der Datenbank "testen" anzumelden. Normalerweise kommst du dann in psql-Konsole rein und kannst dort deine Befehle abgeben oder dir Infos zur Datenbank anzeigen lassen. Wie gesagt, vorher nochmal die pg_hba.conf anschauen und ggf. anpassen.
 

Kenan89

Bekanntes Mitglied
Toll jetzt habe ich mein Passwort vergessen.
Also nicht das passwort für den user postgres, sondern
ich habe einen User der genauso heisst wie mein benutzerkonto...

Da ich noch Anfänger bin stehe ich natürlich vol auf dem Schlauch... :)

Da gibt es doch die Chance, bei pg-hba.conf md5
auf trust zu ändern um trotzdem in die DB zu kommen.
Oder was für eine Möglichkeit habe ich, das PW zu resetten?

Habe das gefühl die ursache des problems kommmt immer näher :D
 
Zuletzt bearbeitet:

Kenan89

Bekanntes Mitglied
Hmm... Es ist so, mein Rechner heisst
asus weil ich ihn so benannt habe. Wenn ich jetzt
md5 in pg-hba conf auf trust setze, wie auf deine
verlinkten seite, müsste er sich auch als asus
anmelden. Klappt nicht weil die console sagt
der Benutzer asus existiert nicht:
psql: FATAL: Rolle >>asus<< existiert nicht

Das bedeutet, ich bin also gar nicht als postgres user angemeldet
sondern als asus. Die Frage ist jetzt wie ich den User wechseln kann.
Weder in psql.exe noch in dem sqlshell unter Programme kann ich Befehle
wie whoiam ausführen...

EDIT: Habe gerade deinen zweiten Link gesehen. Schön und gut, aber bei mir
ist das Problem dass er sagt asus existiert nicht:D Folglich kann ich auch
kein PW resetten :(
 
Zuletzt bearbeitet:
C

Camino

Gast
Hmm, normalerweise meldet man sich unter psql (auf der Konsole) so an:
psql -U [USER] -d [Datenbank]

Müsste bei dir also in etwa so aussehen:
psql -U postgres -d testen

Evtl. muss noch das Passwort angegeben werden...

Danach müsstest du in psql drin sein. Wenn du nur psql ohne Parameter angibst, wird wohl der Benutzer des Betriebssystems (ident) angenommen.

Bei der pg_hba.conf ist es auch wichtig, dass alles richtig dort drin steht, also auch die Reihenfolge der dortigen Anweisungen. Kannst ja mal hier reinkopieren, wie es dort bei dir aussieht (die wichtigen Zeilen mit den Nutzern und Datenbanken).
 
C

Camino

Gast
Hmm... Es ist so, mein Rechner heisst
asus weil ich ihn so benannt habe. Wenn ich jetzt
md5 in pg-hba conf auf trust setze, wie auf deine
verlinkten seite, müsste er sich auch als asus
anmelden. Klappt nicht weil die console sagt
der Benutzer asus existiert nicht:


Das bedeutet, ich bin also gar nicht als postgres user angemeldet
sondern als asus. Die Frage ist jetzt wie ich den User wechseln kann.
Weder in psql.exe noch in dem sqlshell unter Programme kann ich Befehle
wie whoiam ausführen...(

Hmm, hast du denn einen Benutzer namens "asus" angelegt? Und wenn ja, wie und wo?
Du könntest ja mal versuchen, einen neuen Benutzer anzulegen (müsste es auch in dem bin-Verzeichnis von PostgreSQL einen Befehl dazu geben). Nimm halt mal einen anderen Namen, nicht unbedingt den gleichen wie der Computername oder den gleichen Namen wie der Loginname fürs Betriebssystem. Ich glaube, du wirst beim Anlegen gefragt, ob es ein Suoperuser sein soll und ob dieser neue User Datenbanken anlegen können soll. Und diesen User dann in der pg_hba.conf auf trust setzen. (PostgreSQL neustarten nicht vergessen, damit diese Änderungen im Server wirksam werden) Und dann nochmal mit psql versuchen, diesen Benutzer mit der DB zu verbinden.
 

Kenan89

Bekanntes Mitglied
Das Problem ist wenn ich die Konsole in C Programme Postgres bin öfffne, dann werde ich gleich nach dem Passwort gefragt.
Wenn ich die psql shell in start programme öffne dann werde ich sofort nach dem server namen gefolgt von datanbank name usw gefragt, d.h. ich habe gar nicht die Möglichkeit Befehle wie psql -U xy -d xy einzugeben :(

Vielleicht muss sich ja jemand an mein Rechner setzen und es kongfigurieren. Ich glaube das Problem könnte so viele Ursachen haben... Ich frage mal einen Kumpel, ob er Zeit hat, sich das Problem anzusehen.

EDIT: Beziehungsweise, wie öffnet man denn die Konsole für postgresql? :D
Ist es die psql.exe im bin Ordner? Wenn ja, wie gesagt ich werde nach dem Starten
sofort nach dem PW gefragt.
 
Zuletzt bearbeitet:
C

Camino

Gast
Ist es die psql.exe im bin Ordner? Wenn ja, wie gesagt ich werde nach dem Starten sofort nach dem PW gefragt.
Ja, es ist die psql.exe im bin-Verzeichnis der PostgreSQL-Installation. Was passiert denn, wenn du in das bin-Verzeichnis wechselst und dann folgendes aufrufst:
psql -U postgres

Das Problem ist wenn ich die Konsole in C Programme Postgres bin öfffne, dann werde ich gleich nach dem Passwort gefragt.

Hmm, du gehst in der Konsole in das bin-Verzeichnis von PostgreSQL und wirst allein schon beim wechseln in das Verzeichnis (mit: cd bin) nach dem Passwort gefragt?
 
Zuletzt bearbeitet von einem Moderator:
C

Camino

Gast
EDIT: Beziehungsweise, wie öffnet man denn die Konsole für postgresql?
Ist es die psql.exe im bin Ordner? Wenn ja, wie gesagt ich werde nach dem Starten
sofort nach dem PW gefragt.

Also, bei mir liegt das alles im Verzeichnis:
C:/Programme/PostgreSQL/9.0/bin bzw. C:/Program Files/PostgreSQL/9.0/bin

Ich öffne also die Konsole (Eingabeaufforderung) und gehe mit cd C:/Program Files/PostgreSQL/9.0/bin ins gewünschte Verzeichnis, in dem die psql.exe liegt. Dort müsstest du dann den Befehl psql -U postgres ausführen können...
 
Zuletzt bearbeitet von einem Moderator:

Kenan89

Bekanntes Mitglied
Ahaa cool... Ich habe cmd gestartet, ins bin-Verzeichnis gewechselt und die psql -U postgres -d testen ausgeführt und gleiches ergebnis. Konsole sagt Datenbank >>testen<< existiert nicht :(

Hmm, du gehst in der Konsole in das bin-Verzeichnis von PostgreSQL und wirst allein schon beim wechseln in das Verzeichnis (mit: cd bin) nach dem Passwort gefragt?
Nein, mit Konsole habe ich dich falsch verstanden, ich dachte du meinst ich soll die psql.exe in bin Ordner starten. Denn wenn man die startet, wird man nach nem PW gefragt

EDIT:
Hier meine config-Datei:
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof.
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# CIDR-ADDRESS specifies the set of hosts the record matches. It is
# made up of an IP address and a CIDR mask that is an integer (between
# 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies the number
# of significant bits in the mask. Alternatively, you can write an IP
# address and netmask in separate columns to specify the set of hosts.
# Instead of a CIDR-address, you can write "samehost" to match any of
# the server's own IP addresses, or "samenet" to match any address in
# any subnet that the server is directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "krb5", "ident", "pam", "ldap", "radius" or "cert". Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal. If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect. You can
# use "pg_ctl reload" to do that.

# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.



# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5

So sieht es dann in der Console aus... Ich denke die letzten 2 Zeilen kann man ignorieren, wollte nur was testen.

 
Zuletzt bearbeitet:
C

Camino

Gast
Also, wenn ich mir das von dir angehängte Bild anschaue, dann hast du dich doch mit psql -U postgres mit der Datenbank verbunden und warst dann in dem Programm psql als User postgres drin. Innerhalb von psql kannst du dann SQL-Befehle abgeben oder psql-spezifische Anweisungen. Soweit ich weiss, müssen SQL-Anweisungen aber dann mit einem Semikolon beendet werden. Wie schon mal gesagt, schau dir mal die Infos zu psql genauer an, vor allem, welche Befehle es dort gibt. Beenden und wieder raus aus psql kommst du mit dem Befehl
Code:
\q
.

Die Anweisung createdb ist eine exe-Datei aus dem bin-Verzeichnis von PostgreSQL, also kein Befehl innerhalb psql. Wenn du dies ausführen willst, dann aus dem Verzeichnis bin heraus.

Innerhalb von psql kannst du SQL- oder psql-interne Anweisungen abgeben. Welche Anweisungen verfügbar sind, siehst du, wenn du in psql eingeloggt bist, mit den Befehlen
Code:
\h
für SQL-Anweisungen und
Code:
\?
für psql-interne Anweisungen.
 
Zuletzt bearbeitet von einem Moderator:

Kenan89

Bekanntes Mitglied
Ah sehr cool.
Das heisst wenn ich nun über die console eine tabelle anlege, müsste ich mit jsp connecten können.
Ich probiere es gleich aus und schreibe das Ergebnis hier.
 

Kenan89

Bekanntes Mitglied
Soo, ich sehe nur noch eine Möglichkeit das Problem zu lösen;
Hier ist das Problem in Form von Screenshot.

Ich kann in pgAdmin UND in der Konsole neue Rows hinzufügen.

Mit meiner JSP kriege ich aber keine Verbindung zur Tabelle her :(


Ihr seht jetzt in der Grafik mehrere Server und in allen Servern(PostgreSQL 9, testen, ...) ist die Tabelle test5 zu sehen, also sie befindet sich in allen von mir erstellten Servern, ob ihr besitzer doch postgres ist.. Wollte ich nur mal erwähnen, falls das für die Fehlerentdeckung wichtig ist.

Hier nochmal der Code, mit der ich mich nicht mit der Tabelle connecten kann:

Java:
<%@page import="java.sql.*" %>

<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
		Connection conn = null;
		
		String userName = "postgres";
		String userPW = "123"; //das ist nicht mein echtes Passwort ;)
		String conURL = "jdbc:postgresql://localhost:5432/test5";
		
		try{
			Class.forName("org.postgresql.Driver");
			conn = DriverManager.getConnection(conURL, userName, userPW);
			out.println("OK");
			conn.close();
		}
		catch(Exception e){out.println("Fehler");
			e.printStackTrace();
			
			
		}
		
%>
</body>
</html>

Irgendetwas ist schief gelaufen :D
 
Zuletzt bearbeitet:
C

Camino

Gast
Ich weiss nicht, ob das so gut ist, dass du da so viele Server angelegt hast. Also, ich hab bei mir nur den 1 Server: PostgreSQL 9.0 (localhost:5432) eingetragen. Und dort hab ich mehrere Datenbanken, die ich mir selbst angelegt habe. Neben einer Datenbank namens postgres, die wohl automatisch dort bei der Installation erstellt wurde.

Ich würde dir ja den Tipp geben, alles komplett zu entfernen und nochmal neu zu installieren. Und auch schauen, dass wirklich keine Reste von PostgreSQL noch irgendwo rumliegen. Dann würde ich nach der Installation unter dem User postgres (das ist der Superuser der DB) einen neuen User erstellen, und für diesen User auch eine eigene Datenbank. Und dort dann die Tabellen. Diesem User kannst du dann auch in der pg_hba.conf die Zugriffsrechte für die Datenbank erteilen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Jar-Datei stellt keine Datenbankverbindung her Datenbankprogrammierung 3
D Keine Datenbankverbindung Datenbankprogrammierung 4
C MySQL Keine Datenbankverbindung Datenbankprogrammierung 6
I H2 - GUI Tool.... sehe aber keine Tabellen Datenbankprogrammierung 2
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Z Ein haufen Fehlermeldungen aber keine Ahnung warum... Datenbankprogrammierung 9
Z Ein Haufen Fehlermeldungen und keine Ahnung... (H2 DB mit Intellij und Scene Builder ) Datenbankprogrammierung 16
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
OnDemand Select * from bringt keine Rückgabe Datenbankprogrammierung 49
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
J keine Werte vom PHP Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
H MySQL Datenbank auf Xampp nimmt keine Mediumblob an. Datenbankprogrammierung 0
S DB2 Express C - keine Verbindung zur Datenbank Datenbankprogrammierung 2
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
M Keine Antwort der Datenbank bei updateQUery(); Datenbankprogrammierung 2
J SQL-Statement Trigger zeigt keine Wikrung PL/SQL Datenbankprogrammierung 2
W Keine ODBC-Verbindung zur MSAccess-Datenbank Datenbankprogrammierung 2
E Warum kann ich keine Datenbank mit DB2 erstellen? Datenbankprogrammierung 2
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
T JAR keine H2 driver? Datenbankprogrammierung 3
B Mysql speichert keine 0 alls String Datenbankprogrammierung 11
D Keine Einträge in die Datenbank Datenbankprogrammierung 5
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
E JDO -> keine Maps Datenbankprogrammierung 2
D SQLite Statement nimmt keine Namen aus getter-Methoden Datenbankprogrammierung 11
F ORA 17410 Keine weiteren Daten aus Socket zu lesen Datenbankprogrammierung 2
C Derby/JavaDB JavaDB: Keine Connection Datenbankprogrammierung 7
G MySQL Bekomme keine Daten. Datenbankprogrammierung 7
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
André Uhres SQL Abfrage erkennt keine Buchstaben mit Akzenten (z. B. é, è) Datenbankprogrammierung 3
P Hibernate -> SQL verwenden und keine Entity Datenbankprogrammierung 19
B Es werden keine Tupel in Tabellen abgelegt Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
M Keine doppelten Datensätze einfügen Datenbankprogrammierung 24
C keine Verbindung zur MS-SQL-Datenbank mehr Datenbankprogrammierung 4
Y Keine verbindung mit der Datenbank Datenbankprogrammierung 2
D Keine Ausgabe der Daten Datenbankprogrammierung 3
C Keine Verbindung Datenbankprogrammierung 12
B JDBC txt File keine Row ID Datenbankprogrammierung 4
J JDBC - setAutoCommit(false) hat keine wirkung? Datenbankprogrammierung 2
S ResultSet enthält keine Daten Datenbankprogrammierung 2
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
P Es werden keine Daten mehr in die Tabelle eingefügt Datenbankprogrammierung 4
A Fehlermeldung: Keine Daten verfügbar Datenbankprogrammierung 2
M Hilfe - keine Connection zur DB Datenbankprogrammierung 4
C Keine Verbindung zu HSQLDB möglich Datenbankprogrammierung 22
G Keine Aussicht mit Prepared Statement Datenbankprogrammierung 10
I Nach export zur .jar keine verbindung mehr Datenbankprogrammierung 7
I Kann keine Daten aus ResultSet holen ? Datenbankprogrammierung 11
J Keine Connection zur MySQL Db Datenbankprogrammierung 6
I Keine Treiber-Klasse! Datenbankprogrammierung 9
K keine Verbindung zu mysql Datenbank Datenbankprogrammierung 11
W Keine leeren Felder bei Access Datenbankprogrammierung 15
M Bekomme keine Daten in die DB! Datenbankprogrammierung 11
H Kann keine Verbindung zur DB herstellen Datenbankprogrammierung 7
G linux mysql keine verbindung Datenbankprogrammierung 8
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
M Datenbankverbindung mit JSP herstellen Datenbankprogrammierung 19
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
B Datenbankverbindung herstellen Datenbankprogrammierung 6
R Datenbankverbindung kann nicht hergestellt werden Datenbankprogrammierung 8
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
E Zuverlässige Datenbankverbindung Datenbankprogrammierung 4
B SQLite Java Login + Datenbankverbindung Datenbankprogrammierung 4
M Datenbankverbindung Access Datenbankprogrammierung 3
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
C [MSSQL] Datenbankverbindung will nicht klappen... Datenbankprogrammierung 2
Hartigan Datenbankverbindung automatisch aktualisieren Datenbankprogrammierung 3
D MySQL Datenbankverbindung scheitert Datenbankprogrammierung 9
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10
G Wie sieht eine Datenbankverbindung mit jndi aus? Datenbankprogrammierung 3
D Sicherheit für Datenbankverbindung Datenbankprogrammierung 19
MQue MySQL DatenbankVerbindung Datenbankprogrammierung 3
B Datenbankverbindung kann nicht aufgebaut werden. Datenbankprogrammierung 2
M Aus einem Applet eine Datenbankverbindung starten? Datenbankprogrammierung 26
G Datenbankverbindung mit Proxool aufrecht erhalten Datenbankprogrammierung 4
G iBatis Datenbankverbindung - DB-User übergeben Datenbankprogrammierung 4
J Warum ist es aufwendig eine Datenbankverbindung herzustellen Datenbankprogrammierung 3
E Datenbankverbindung verwalten Datenbankprogrammierung 6
J Fehler bei Oracle-Datenbankverbindung Datenbankprogrammierung 2
E Datenbankverbindung Java MySQL Exception Datenbankprogrammierung 10
K Datenbankverbindung zu MySQL in XAMPP Datenbankprogrammierung 11
M Dauerhafte Datenbankverbindung - Timeouts? Datenbankprogrammierung 4
timomeinen [Hibernate] Datenbankverbindung testen Datenbankprogrammierung 11
M Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab Datenbankprogrammierung 3
K Wann schließt ihr die Datenbankverbindung? Datenbankprogrammierung 7
E Datenbankverbindung von BIRT Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben