• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

261
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda