Verbindung zur Datenbank scheitert mittels PHP

Heho allwissendes Forum,
ich hoffe ihr könnt mir helfen. meine postgresumgebung(8.4) ist auf meinem xp-rechner erfolgreich installiert und läuft bis dato auch in allen bereichen einwandfrei. doch nun möchte/muss/darf ich eine php-connection aufbauen. diese schlägt aber fehl und ich weiß nicht recht warum?bilde mir ein die selbigen konfigurationen schon immer verwendet zu haben.
hier der programmcode für die connection:

 pg_connect('localhost', 'postgres', 'postgres');
   pg_select_db('diabroticaweather');
   $pg = "SELECT station, distance(PointFromText('POINT(-116.768347 33.911404)', 4326),the_geom) as b FROM weatherstations order by b limit 1";
   
   $result = pg_query($pg);
   $weatherstation = 'unbekannt';
   if ($zeile = pg_fetch_assoc($result)) {
      $weatherstation = $zeile['station'];
   }
   pg_close(); 

doch es erscheint immer folgender fehler:
[HTML]Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Cannot assign requested address (0x00002741/10049) Is the server running on host “localhost” and accepting TCP/IP connections on port postgres?[/HTML]
über eure hilfe wäre ich durchaus dankbar.
mfg
ballibum

Ich quote mal die Hilfe. Läuft da ein PG-Server UND akzeptiert er Verbindungen auf dem Port? (üblicherweise 5432).

Hint: ist da eine Tischbrandschutzmauer im Weg?

Andreas

Außerdem fehlen da überall im Code Fehlerüberprüfungen.

mh, also ich ahbe die gesamte umgebung wie sie auf dem aktuellen rechner ist auch auf meinem laptop und da funktioniert es tadellos, wie kann ich prüfen ob mein localhost (ms4w mit apache) den 5432-port akzeptiert?

netstat, telnet, nmap, …


Andreas

okay, ich darf keines dieser programme auf meinem rechner installieren(dienstnetzwerk), gibt es etwaigige möglichkeiten den spaß zu testen? oder was müsste ich machen, um die verbindung herzustellen?

Netstat und telnet sind bei jeder normalen Windows Installation dabei. Einfach eine Kommandozeile aufmachen …

okay wenn ich nun netstat starte dann bekomme ich folgende zeilen:
Aktive Verbindungen

Proto Lokale Adresse Remoteadresse Status
TCP sfpc26:1098 localhost:1099 HERGESTELLT
TCP sfpc26:1099 localhost:1098 HERGESTELLT
TCP sfpc26:1100 localhost:1101 HERGESTELLT
TCP sfpc26:1101 localhost:1100 HERGESTELLT
TCP sfpc26:1086 172.17.21.101:netbios-ssn HERGESTELLT

doch wo ist nun die verbindun zwischen localhost und postgresql, bzw wie kann ich diese aufbauen?

Indem Du PostgreSQL startest.

Andreas

lol danke, macht euch ruhig lustig, aber postgresql läuft als dienst und ist bereits gestartet. ich habe es auch schon über neustarten versucht, ebenso wenig von erfolg gekrönt.

Klar, etwas Spaß auf der Arbeit ist doch okay, oder?

aber postgresql läuft als dienst und ist bereits gestartet. ich habe es auch schon über neustarten versucht, ebenso wenig von erfolg gekrönt.

War das die Ausgabe auch der Ports, die ‘listening’ sind? Falls ja, dann läuft PostgreSQL nicht. Punkt. Falls nicht, konsultiere die Hilfe zu netstat und wiederhole das mit den richtigen Optionen. Ist nun PostgreSQL (postmaster) mit dabei? Falls nein: PostgreSQL läuft nicht. → PG starten. Falls ja: es läuft, aber Schadsoftware behindert diese. → OS säubern.

Andreas

Klar, etwas Spaß auf der Arbeit ist doch okay, oder?

ist schon in ordnung und oftmals ist es ja so das die trivialen fehler auftreten. ich glaube ich muss den port der datenbank ändern, der 5432 ist mit einem netzwerkdienst besetzt, kann ich leider nicht ändern.
gibt es irgendeinen port der dafür in frage kommt?
mfg ballibum

Welcher Schlingel benutzt einen bei der IANA reservierten Port für etwas anderes als von der IANA vorgesehen?

Egal, TCP/IP kennt 65536 Ports und Du nun ja netstat. Such Dir einfach einen freien aus, okay?

Andreas

daran scheint es nicht zu liegen, eher daran das die verbindung falsch aufgebaut wird, denn der port wird schon postgresql zugeordnet, aber leider nicht dem localhost und in der status leiste steht auch nur “abhören”

[HTML]TCP sfpc26:5430 sfpc26.dorf.Intern:0 ABHÖREN[/HTML]

ich habe keine schadsoftware auf meinem rechner , werde mcih aber gleich mal an meinen administrator wenden

netstat -an wäre übersichtlicher, und 5430 ist nicht 5432, und sfpc26 ist Dein Rechner, stimmts?

Andreas

ja sfpc:26 ist mein rechner. wenn ich netstat -an verwende kommt folgende zeile bei raus:

[HTML]TCP 0.0.0.0:5430 0.0.0.0:0 ABHÖREN[/HTML]

5430 hatte ich geändert, weil ich vermutet hatte das der 5432 besetzt sei, aber dann hätte er ja eigentlich gar nciht erst starten dürfen

Du sprichst in Rätseln. Dein PHP erwartet PG am Port 5432, wenn dies aber an 5430 lauscht, ist ein Connect nicht möglich. Wenn PG an 5432 lauscht und auch dann kein Connect geht, dann stört offensichtlich etwas das Rendezvous, vermutlich Schadsoftware. Was ich alles in diese Kategorie einordne, habe ich erst gestern hier erklärt.

Andreas

entschuldige bitte mein rätselhaftes verhalten, dieses problem ist mir nur gänzlich neu und ich habe eben keinerlei großartige ahnung davon.

hier der netstat -an eintrag, wenn postgres auf port 5432 eingestellt ist:
[HTML] Proto Lokale Adresse Remoteadresse Status
TCP 0.0.0.0:80 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:135 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:445 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:2967 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:3389 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:5432 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:80 127.0.0.1:1205 WARTEND
TCP 127.0.0.1:1066 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:1094 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:1166 127.0.0.1:1167 HERGESTELLT
TCP 127.0.0.1:1167 127.0.0.1:1166 HERGESTELLT
TCP 127.0.0.1:1168 127.0.0.1:1169 HERGESTELLT
TCP 127.0.0.1:1169 127.0.0.1:1168 HERGESTELLT
TCP 127.0.0.1:1199 127.0.0.1:5432 HERGESTELLT
TCP 127.0.0.1:1200 127.0.0.1:5432 HERGESTELLT
TCP 127.0.0.1:5432 127.0.0.1:1199 HERGESTELLT
TCP 127.0.0.1:5432 127.0.0.1:1200 HERGESTELLT
TCP 172.17.170.126:139 0.0.0.0:0 ABHÖREN
TCP 172.17.170.126:1043 172.17.21.101:139 HERGESTELLT
TCP 172.17.170.126:1209 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1210 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1211 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1212 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1213 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1214 172.16.1.22:8000 SCHLIESSEN_WARTEN
TCP 172.17.170.126:1215 172.16.1.22:8000 SCHLIESSEN_WARTEN
UDP 0.0.0.0:445 :
UDP 0.0.0.0:500 :
UDP 0.0.0.0:4500 :
UDP 127.0.0.1:123 :
UDP 127.0.0.1:1025 :
UDP 127.0.0.1:1057 :
UDP 127.0.0.1:1188 :
UDP 127.0.0.1:1900 :
UDP 172.17.170.126:123 :
UDP 172.17.170.126:137 :
UDP 172.17.170.126:138 :
UDP 172.17.170.126:1900 :
[/HTML]

Schaut doch gut aus. Vermutlich also doch Schadsoftware.

Andreas

okay, das einzige was ich neben dem lokalen webserver, postgresql und den standard windowsanwendungen befindet sich symantec antivirus auf meinem rechner.
dieses darf ich aber nicht installieren, kann es dennoch an diesem programm liegen?

mfg
ballibum
vielen dank für deine hilfe