Я впервые установил аутентификацию для 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. Любая идея, что вызывает эту проблему подключения?
Как я уже отмечалось, IP-адрес реального HOST был удален мною в целях безопасности. Фактический HOST IP в скрипте указывает на реальный IP-адрес – Idan