Dieser Artikel stellt Ihnen hauptsächlich die Lösung für den Fehler bei der Remote-Verbindungsauthentifizierung unter mongodb 3.4 vor Ich brauche es. Folgen wir dem Herausgeber, um gemeinsam zu lernen.
Vorwort
Es ist ziemlich mühsam, die Autorisierungsfunktion in mongodb ein- oder auszuschalten. Sie müssen mongod --auth
eingeben, um eine zu erstellen neuer Dienst. Der Einfachheit halber habe ich hier zwei Dienste erstellt und kann zu jedem Dienst wechseln, den ich verwende.
--需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --auth --serviceName "MongoDBService" --serviceDisplayName "MongoDBService" --install --不需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --serviceName "MongoDBServiceNoAuth" --serviceDisplayName "MongoDBServiceNoAuth" --install
Kommen wir zum Punkt. Nachdem ich mongodb hier konfiguriert habe, kann ich über db.auth('username','password')
lokal darauf zugreifen, aber nicht remote über den Client Tools und C#-Code. Stellen Sie sicher, dass die Firewall nicht aktiviert ist und die Mongodb-Datenbank standardmäßig für alle IPs zugänglich ist.
Später sah ich versehentlich „Die Verwendung von Robomongo zum Herstellen einer Verbindung zu MongoDB 3.x meldete eine fehlgeschlagene Autorisierungslösung“ Dieser Artikel folgt einfach der oben genannten Methode.
Die Methode ist wie folgt:
Zuerst habe ich die Datenbankversion überprüft und festgestellt, dass dies der Fall ist Fall.
> use admin switched to db admin > db.system.version.find() { "_id" : "featureCompatibilityVersion", "version" : "3.4" } { "_id" : "authSchema", "currentVersion" : 5 }
2. Aktivieren Sie den MongoDBServiceNoAuth-Dienst, verwenden Sie den db.dropUser('username')
-Befehl , um alle ursprünglichen Benutzer vor zu löschen, und führen Sie dann die Version aus Befehl ändern.
>db.dropUser('admin') >db.dropUser('root') >db.dropUser('dba') >db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
3. Erstellen Sie doppelte Benutzer
> db.createUser({user:"admin",pwd:"********",roles:[{"role":"userAdminAnyDataba se","db":"admin"},{"role":"readWrite","db":"qxkf"}]}) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWrite", "db" : "qxkf" } ] }
4. Sie können das Robomongo-Tool verwenden, um zu überprüfen, ob es PASS ist Hier.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die Authentifizierung der Remoteverbindung unter Mongodb 3.4 fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!