2017-01-02 7 views
1

Ich habe zum ersten Mal die Authentifizierung für MongoDB eingerichtet. Ich habe zwei Benutzer: 'admin', (als root in der Datenbank 'admin' festgelegt) und 'testUser', der in der 'testDatabase' als 'dbAdmin' eingerichtet ist.MongoDB PHP Driver schlägt fehl und Authentifizieren

Wenn ich Mongo Shell mit dem folgenden Befehl alles login:

mongo -u testUser -p abcd1234 --authenticationDatabase testDatabase 

Auf das Ende des PHP, ich habe den folgenden Code:

<?php 
class DBConnection { 
    const HOST = '1.1.1.1'; 
    const PORT = 27017; 
    const DBNAME = 'testDatabase'; 
    const USERNAME = 'testUser'; 
    const PASSWORD = 'abcd1234'; 
    private static $instance; 
    public $connection; 
    public $database; 

    private function __construct() { 

     if (!extension_loaded('mongo')) die("MongoDB is not installed!"); 
     try { 
      $this->connection = new MongoClient('mongodb://'.self::HOST.':'.self::PORT.'/'.self::DBNAME, array('username' => self::USERNAME, 'password' => self::PASSWORD)); 
      $this->database = $this->connection->selectDB(self::DBNAME); 
     } catch (MongoConnectionException $e) { 
      throw $e; 
     } 
    } 

    static public function instantiate() { 
     if (!isset(self::$instance)) { 
      $class = __CLASS__; 
      self:: $instance = new $class; 
     } 
     return self::$instance; 
    } 

    public function getCollection($name) { 
     return $this->database->selectCollection($name); 
    } 

    public function execute($code) { 
     return $this->database->execute($code); 
    } 
} 
?> 

natürlich Gastgeber (sowie Der Datenbankname, Benutzername und Passwort sind verschleiert. Ich habe mehrere Male verifiziert, dass es keinen Tippfehler in den Anmeldeinformationen gibt. Ich habe auch überprüft, dass ich von einer Remote-Shell eine Verbindung zur Datenbank herstellen kann, ähnlich wie dieses Skript eine Verbindung herstellt.

Trotzdem habe ich immer diese Fehlermeldung:

PHP Fatal error: Uncaught exception 'MongoConnectionException' with message 'Failed to connect to: 1.1.1.1:27017: Authentication failed on database 'testDatabase' with username 'testUser': auth failed' in /var/www/html/wip/include/mongoConnect.php:17 Stack trace: 0 /var/www/html/wip/include/mongoConnect.php(17): MongoClient->__construct('mongodb://1.1...', Array) 1 /var/www/html/wip/include/mongoConnect.php(27): DBConnection->__construct() 2 /var/www/html/wip/migration/migrate.php(85): DBConnection::instantiate() 3 {main} thrown in /var/www/html/wip/include/mongoConnect.php on line 17

Credentials für beide Benutzer sind in SCRAM-SHA-1. Irgendeine Idee, was dieses Verbindungsproblem verursacht?

+0

Wie ich erwähnt, die reale Host-IP-Adresse aus Sicherheitsgründen entfernt Zwecke wurde von mir. Die tatsächliche Host-IP im Skript verweist auf eine echte IP-Adresse – Idan

Antwort

Verwandte Themen