• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

262
Views
El controlador PHP de MongoDB no se conecta ni se autentica

He configurado por primera vez la autenticación para MongoDB. Tengo dos usuarios: 'admin', (establecido como root en la base de datos 'admin') y 'testUser' que está configurado como 'dbAdmin' en 'testDatabase'.

Cuando uso mongo shell para iniciar sesión con el siguiente comando, todo funciona:

 mongo -u testUser -p abcd1234 --authenticationDatabase testDatabase

Al final de PHP, tengo el siguiente código:

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

Naturalmente, el host (así como el nombre de la base de datos, el nombre de usuario y la contraseña) están ofuscados. He verificado varias veces que no hay un error tipográfico en las credenciales. También verifiqué que puedo conectarme a la base de datos desde un shell remoto, similar a cómo se conecta este script.

Aún así, siempre me sale este error:

Error fatal de PHP: excepción no detectada 'MongoConnectionException' con el mensaje 'Error al conectarse a: 1.1.1.1:27017: La autenticación falló en la base de datos 'testDatabase' con el nombre de usuario 'testUser': error de autenticación' en /var/www/html/wip/include /mongoConnect.php:17 Rastreo de pila: 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::instanciate() 3 {principal} lanzado en /var/www/html/wip/include/mongoConnect.php en la línea 17

Las credenciales de ambos usuarios están en SCRAM-SHA-1. ¿Alguna idea de qué está causando este problema de conexión?

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Puedes intentar cambiar la forma de iniciar sesión

$m = new MongoClient("mongodb://${nombre de usuario}:${contraseña}@localhost");

Echa un vistazo aquí:
http://php.net/manual/en/mongo.connecting.auth.php

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error