para - php mongodb driver
Problemas para configurar usuarios y conectarse a Mongo con PHP (1)
Instalé mongo 3.0.0 en mi servidor ubuntu. Traté de usar PHP (con la biblioteca apropiada instalada) para conectarme a mongo y aprender algo nuevo. Desafortunadamente no puedo ir más allá. Mi configuración de usuario se ve así:
> use testdb
switched to db testdb
> show users
{
"_id" : "testdb.testdb",
"user" : "testdb",
"db" : "testdb",
"roles" : [
{
"role" : "readWrite",
"db" : "testdb"
}
]
}
Luego trato de ejecutar el siguiente código PHP:
try{
$uri = "mongodb://testdb:[email protected]:27017/testdb";
$options = array("connectTimeoutMS" => 30000);
$client = new MongoClient($uri, $options );
}
catch(Exception $e) {
echo ''Message: '' .$e->getMessage();
die();
}
$db = $client->selectDB("testdb");
Aparece el mensaje "Mensaje: no se pudo conectar a: xxx.xxx.xxx.xxx:27017: Falló la autenticación en la base de datos ''testdb'' con el nombre de usuario ''testdb'': auth failed".
En /etc/mongod.conf tengo "auth = true" sin comentarios
También verifiqué la conversación con:
> nc -w 3 -v xxx.xxx.xxx.xxx 27017 Connection to xxx.xxx.xxx.xxx 27017
> port [tcp/*] succeeded!
Busco en Internet, pasé unas horas en esto, incluso reinstalé mongo y configuré todo de nuevo sin ningún éxito. ¿Podría indicar dónde buscar la solución?
El esquema de autenticación de 3.0 no es compatible con los controladores 2.x. Una forma en que debería poder hacer que funcione es degradando el mecanismo de autenticación:
use "admin"
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
Luego crea un usuario y deberías poder conectarte con él.