2017-01-02 2 views
1

Я впервые установил аутентификацию для MongoDB. У меня есть два пользователя: «admin», (задано как root в базе данных «admin») и «testUser», который настроен как «dbAdmin» в «testDatabase».Ошибка PHP-драйвера MongoDB

Когда я использую Монго оболочку для входа с помощью следующей команды всех работ:

mongo -u testUser -p abcd1234 --authenticationDatabase testDatabase 

В конце РНР, у меня есть следующий код:

<?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); 
    } 
} 
?> 

Естественно, хозяин (а также имя db, имя пользователя и пароль) запутываются. Я проверил несколько раз, что в учетных данных нет опечатки. Я также проверил, что я могу подключиться к базе данных из удаленной оболочки, подобно тому, как этот скрипт соединяется.

Тем не менее, я всегда получаю эту ошибку:

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

учетные данные для обоих пользователей находятся в SCRAM-SHA-1. Любая идея, что вызывает эту проблему подключения?

+0

Как я уже отмечалось, IP-адрес реального HOST был удален мною в целях безопасности. Фактический HOST IP в скрипте указывает на реальный IP-адрес – Idan

ответ

Смежные вопросы