How does this work for connections to replication sets?
Does the connection string become:
"mongodb://user:password@server1:27017,server2:27017,server3:27017"
Si MongoDB est en fonctionnement avec l'option --auth
ou
l'option --keyFile
, vous devez vous authentifier avant de
faire n'importe quelle opération avec le driver. Vous pouvez vous authentifier
via la connexion en spécifiant le nom d'utilisateur et le mot de passe
soit dans l'URI de connexion, ou en utilisant les options
"username"
et "password"
dans le constructeur
MongoClient::__construct().
Exemple #1 Authentification sur la base de données "admin"
<?php
// Spécifie le nom d'utilisateur et le mot de passe dans l'URI de connexion (méthode préférée)
$m = new MongoClient("mongodb://${username}:${password}@localhost");
// Spécifie le nom d'utilisateur et le mot de passe via le tableau d'options (méthode alternative)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>
Par défaut, le driver s'authentifiera sur la base de données admin
.
Vous pouvez vous authentifier sur une base de données différente en le spécifiant
soit dans l'URI de connexion, soit via l'option "db"
du constructeur
MongoClient::__construct().
Exemple #2 Authentification sur une base de données normale
<?php
// Spécifie la base de données à utiliser dans l'URI de connexion (méthode préférée)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");
// Spécifie la base de données à utiliser via le tableau d'options (méthode alternative)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>
Si votre connexion est interrompue, le driver tentera automatiquement une re-connexion ou une ré-authentification.
How does this work for connections to replication sets?
Does the connection string become:
"mongodb://user:password@server1:27017,server2:27017,server3:27017"
For connecting to a replica set with authentication it is possible to use a connection string like the following (substitute the port numbers, replica set name and DB with your own)
$m = new MongoClient("mongodb://${username}:${password}@localhost:27037,mongodb://${username}:${password}@localhost:27038",
array("replicaSet" => "test"_replica, "db" => "mytestdb"));
The second member string "mongodb://${username}:${password}@localhost:27038" does not need the username and password - however, if the connection to the first member fails I have not tested to see if the username and password persist to the second member.