Kann auf mongodb mit PHP nicht authentifizieren

7

Was ich getan habe:

Aktivierte Authentifizierung in /etc/mongod.conf :

%Vor%

Erstellt den ersten Benutzer aus der Shell wie im Dokument angegeben:

%Vor%

Mit dem admin Benutzer habe ich einen root Benutzer erstellt, um auf mongodb zuzugreifen:

%Vor%

Bis zu diesem Punkt funktioniert alles gut, da ich mich mit der Mongo-Shell authentifizieren kann:

%Vor%

und es funktioniert perfekt, da ich alle Operationen in der db machen kann.

Das Problem :

wenn ich versuche, mich von PHP mit demselben root user zu authentifizieren:

%Vor%

Es gibt den Fehler:

  

Verbindung fehlgeschlagen mit: localhost: 27017: Authentifizierung fehlgeschlagen für Datenbank 'admin' mit Benutzername 'root': auth failed

Warum kann sich PHP nicht auf mongodb authentifizieren, wenn die Authentifizierung mit den gleichen Zugangsdaten von der Mongo-Shell funktioniert?

Weitere Hinweise:

  • Wenn ich die Authentifizierung deaktiviere, verbindet sich PHP perfekt und die Mongo-Klassen funktionieren gut.
  • Ich habe versucht, verschiedene Benutzer zu erstellen, aber die Antwort ist die gleiche
  • Ich benutze Mongo 3.0.1, PHP 5.5.9 und Ubuntu 14.04.2 LTS 64bit
Moppo 22.04.2015, 09:05
quelle

3 Antworten

20

Problem gelöst: Es wurde von einem Problem in der PHP mongo Treiberversion 1.4

verursacht

Ich habe den Treiber auf die Version 1.6 mit:

aktualisiert %Vor%

und jetzt funktioniert die Authentifizierung.

    
Moppo 23.04.2015, 13:59
quelle
2

Ich hatte das gleiche Problem, in meinem Fall habe ich mongo mit apt-get

installiert %Vor%

Und es scheint, dass Ubuntu-Repositories immer noch die Version 1.4 hat und das Paket noch nicht aktualisiert hat. Wenn Sie Mongo unter Ubuntu installieren möchten, sollten Sie die pecl-Option verwenden

%Vor%

Benutze niemals apt-get für die Installation von mongo für PHP.

    
ventayol 02.10.2015 16:53
quelle
-1

nach Mongo-Installationsanweisungen in Windows-Versionen muss die mongo.dll in den Systempfad z. c: \ windows. Ich habe das getestet und es funktioniert.

    
ms000 04.02.2016 18:59
quelle