Prüfen dass der Datenbankserver TCP/IP-Verbindungen annimmt.

Hallo liebe Leute,

ich versuche gerade für ein Programm eine Postgresql DB aufzusetzen.

Setze ich die IP bei der Hostverbindung auf “localhost” funktioniert alles.
db.url=jdbc:postgresql://localhost:5432/i2b2?searchpath=i2b2demodata

Setze ich das ganze jedoch auf die IP des Servers, also
db.url=jdbc:postgresql:// xyzxyz.stratoserver.net:5432/i2b2?searchpath=i2b2demodata

dann gibt es folgende Meldung:

/home/i2b2data/edu.harvard.i2b2.data/Release_1-7/NewInstall/Crcdata/data_build.xml:41: org.postgresql.util.PSQLException: Verbindung verweigert. Ãberprüfen Sie die Korrektheit von Hostnamen und der Portnummer und dass der Datenbankserver TCP/IP-Verbindungen annimmt.
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:207)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)
        at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
        at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
        at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
        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.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
        at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:942)
        at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:614)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:392)
        at org.apache.tools.ant.Target.performTasks(Target.java:413)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:811)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at org.postgresql.core.PGStream.<init>(PGStream.java:60)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:101)
        ... 28 more

Wo kann ich denn prüfen, ob der Datenbankserver TCP/IP Verbindungen annimmt? Bzw. wo sonst könnte der Fehler liegen?

PS: ist ein debian server

Das Leerzeichen ist falsch. In der postgresql.conf muß listen_addresses passend gesetzt sein. Der Hoster muß Verbindungen auf 5432 zulassen. Testen kannst das auch mit telnet auf den Port.

Außerdem: falscher Hoster, komm lieber zu uns :wink:

Heyhey,

danke schonmal für die Antwort. Also in der Postgres Konfigurationsdatei steht folgendes:

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost', '*' = all
                                        # (change requires restart)
port = 5432                             # (change requires restart)

Also - demnach, nachdem das Ganze auskommentiert ist sollte der Default ja bei ‘*’ bzw. localhost liegen. Port scheint ja auch zu passen. (Das Leerzeichen war übrigens nur ein Vertipper jetzt hier im Forum).
Auch wenn ich bei listen_addresses meine Adresse angebe bekomme ich noch die selbe Fehlermeldung.(aber ist ja auch klar, da die config wohl passt)

@Akretschmer: Eventuell kannst du kurz erläutern wie das funktioniert? ;x Weis nur, dass Telnet irgendeine veraltete SSH Variante ist (oder? :slight_smile: )

Der Hoster muß Verbindungen auf 5432 zulassen. Testen kannst das auch mit telnet auf den Port.

Das steht auskommentiert da, und dokumentiert die Default-Einstellung. Diese ist, daß PG eben NICHT auf TCP/IP lauscht, sondern nur via Unix-Socke. Also, das # rausnehmen und statt localhost da * rein, neu starten.

telnet , hier also und passend setzen. Es muß eine Verbindung zustande kommen.

Hi nochmals,

ok - zumindest gab es schonmal progress und die Fehlermeldung hat sich verändert.

/home/i2b2data/edu.harvard.i2b2.data/Release_1-7/NewInstall/Crcdata/data_build.xml:41: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "<meine IP>", user "i2b2demodata", database "i2b2", SSL off
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:398)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:173)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)
        at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
        at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
        at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
        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.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
        at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:942)
        at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:614)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:392)
        at org.apache.tools.ant.Target.performTasks(Target.java:413)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:811)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Ich habe hiernoch noch folgende Zeile in die Datei pg_hba.conf eingetragen und nun funktioniert scheinbar alles :-).

host    all             all            <serveradresse>       md5

Danke @akretschmer für die Hilfe!