Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Kann nicht mit PHP zur Datenbank verbinden

  1. #1
    LonelyPixel ist offline Neuer Benutzer
    Registriert seit
    05.11.2007
    Beiträge
    24

    Standard Kann nicht mit PHP zur Datenbank verbinden

    Hallo,

    ich habe jetzt PostgreSQL 8.4 installiert, um meine PHP-Anwendung dagegen zu testen. Der Datenbankserver läuft in einer VM unter Windows XP. Der Webserver läuft auf meinem PC. Die Anwendung läuft in PHP 5.3 und verwendet PDO zur Datenbankverbindung. Das Datenbankschema habe ich lokal mit pgadmin 3 eingerichtet. Die Firewall ist entsprechend eingerichtet.

    Das hat alles mal funktioniert, ich glaube mit PGSQL 8.3. Allerdings musste ich schon etliche Fehler im Setup-Skript beseitigen, so dass ich davon ausgehe, dass sich in 8.4 viel geändert hat.

    U.a. kann ich jetzt eben gar nicht erst zur Datenbank verbinden. Ich verwende dafür den Benutzer "postgres". Ich habe schon in der Datei pg_hba.conf folgende Zeile eingefügt und die vorhandenen auskommentiert:

    host all all trust

    Ich bekomme aber trotzdem diesen Fehler:

    Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] expected authentication request from server, but received '

    Der Fehler tritt direkt beim Instanziieren der PDO-Klasse auf.

    Kann mir jemand weiterhelfen? Ich hab von PGSQL anscheinend keine Ahnung, das Handbuch hilft mir jetzt nicht mehr weiter und im Web finde ich auch keine relevanten Seiten.

  2. #2
    murphy ist offline Erfahrener Benutzer
    Registriert seit
    19.08.2009
    Beiträge
    165

    Standard

    Akzeptiert dein Datenbankserver Verbindungen von außen (Stichwort listen_addresses = '*')?
    Ansonsten schau mal in das PG-Log, was da drin steht...

  3. #3
    LonelyPixel ist offline Neuer Benutzer
    Registriert seit
    05.11.2007
    Beiträge
    24

    Standard

    Im Log steht folgendes:

    2010-06-08 21:19:28 CEST LOG: ungültige IP-Adresse »trust«: Unknown host
    2010-06-08 21:19:28 CEST ZUSAMMENHANG: Zeile 74 in Konfigurationsdatei »C:/Programme/PostgreSQL/8.4/data/pg_hba.conf«
    2010-06-08 21:19:28 CEST FATAL: konnte pg_hba.conf nicht laden
    2010-06-08 21:19:28 CEST LOG: ungültige IP-Adresse »trust«: Unknown host
    2010-06-08 21:19:28 CEST ZUSAMMENHANG: Zeile 74 in Konfigurationsdatei »C:/Programme/PostgreSQL/8.4/data/pg_hba.conf«
    2010-06-08 21:19:28 CEST FATAL: konnte pg_hba.conf nicht laden

  4. #4
    murphy ist offline Erfahrener Benutzer
    Registriert seit
    19.08.2009
    Beiträge
    165

    Standard

    Naja, steht doch alles da: deine pg_hba.conf hat einen falschen Aufbau und kann daher nicht geladen werden!

  5. #5
    LonelyPixel ist offline Neuer Benutzer
    Registriert seit
    05.11.2007
    Beiträge
    24

    Standard

    Ich hab mich nach dem hier gerichtet: Client-Authentifizierung

    Wie kann ich diese Datei dann einrichten, damit ich von anderen Hosts zum Datenbankserver verbinden kann? Ich wollte mir die Antwort zu der Frage selber suchen, aber bin dabei wohl auf die falsche Quelle gestoßen. Eine passende Beispielzeile ist in der mitgelieferten Datei nicht auffindbar (zumindest nicht ohne IPv6-Kenntnisse, und ich habe noch kein funktionierendes IPv6-Netzwerk gesehen).

  6. #6
    murphy ist offline Erfahrener Benutzer
    Registriert seit
    19.08.2009
    Beiträge
    165

    Standard

    # TYPE DATABASE USER CIDR-ADDRESS METHOD

    # IPv4 local connections:

    host all all 127.0.0.1/32 md5

    Wenn du nun das Loopback-Device gegen dein Subnetz tauscht und die Auth-Methode auf trust stellst, sollte es klappen. Wichtig sind die fünf Elemente, bei dir waren es nur vier...


  7. #7
    LonelyPixel ist offline Neuer Benutzer
    Registriert seit
    05.11.2007
    Beiträge
    24

    Standard

    Danke. Nun funktioniert es. Mit "0.0.0.0/0" geht es auch. (Ich kümmer mich grad nicht um die Serversicherheit, es muss erstmal nur funktionieren.) Im gezeigten Handbuch gab es auch Zeilen mit weniger Einträgen, das scheint aber falsch oder veraltet zu sein. Ich bekomme jetzt in meinem Programm SQL-Fehler, die es so früher ganz sicher nicht gab. PGSQL 8.4 scheint wirklich ganz anders zu sein. Hab grade nachgeschaut, der letzte Test war mit Version 8.2. Muss lange her sein (Nov 2007?).

  8. #8
    murphy ist offline Erfahrener Benutzer
    Registriert seit
    19.08.2009
    Beiträge
    165

    Standard

    Das mit der Sicherheit merke ich

    Viel Erfolg!

  9. #9
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Das Format hat sich seit 8.2 nicht geändert.
    Der falsche Eintrag dürfte also mit beiden Versionen nicht funktionieren.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  10. #10
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von LonelyPixel Beitrag anzeigen
    Im gezeigten Handbuch gab es auch Zeilen mit weniger Einträgen, das scheint aber falsch oder veraltet zu sein.
    Weder noch. Das sind Einträge für "local". Falls das ein öffentlich zugänglicher Server ist (und nicht nur dann!), solltest Du Dich mit Server-Sicherheit beschäftigen. Es gibt schon genug Spam-Schleudern.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum