Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

319
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?

over 4 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

over 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda