2017-03-29 5 views
0

Ich versuche, Authentifizierung in meinem mongodb Version v3.4.3 aus der Konfigurationsdatei zu aktivieren, aber es funktioniert nicht.Mongodb Authentifizierung funktioniert nicht von der Konfigurationsdatei

Die folgenden Werke: sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb

ich über Authentifizierung

Folgende Arbeiten als auch

zugreifen können

sudo service mongod start aber nur, wenn in der Konfigurationsdatei (die /etc/mongod.conf ist) Ich gebe keine Autorisierung: aktiviert

Wenn ich Autorisierung hinzufügen: aktiviert (wie in der Dokumentation für diese Version beschrieben), Ich kann Mongod nicht mehr starten. Es gibt einen Fehler, der besagt, dass mein Datenbankordner nicht existiert. Daher nehme ich an, dass die Konfigurationsdatei beschädigt ist und nicht mehr gelesen wird, dass sich der Datenbankordner in/var/lib/mongodb befindet.

Alle Vorschläge sind willkommen.

Hier ist die vollständige Konfigurationsdatei (Standard-Konfigurationsdatei, mit der Ausnahme, dass ich hinzugefügt Genehmigung)

ubuntu @ ip-172-31-28-105: ~ $ cat /etc/mongod.conf

# mongod.conf 

# for documentation of all options, see: 
# http://docs.mongodb.org/manual/reference/configuration-options/ 

# Where and how to store data. 
storage: 
    dbPath: /var/lib/mongodb 
    journal: 
    enabled: true 
# engine: 
# mmapv1: 
# wiredTiger: 

# where to write logging data. 
systemLog: 
    destination: file 
    logAppend: true 
    path: /var/log/mongodb/mongod.log 

# network interfaces 
net: 
    port: 27017 
    bindIp: 0.0.0.0 

#processManagement: 

#security: 
    authorization: enabled 

#operationProfiling: 

#replication: 

#sharding: 

## Enterprise-Only Options: 

#auditLog: 

#snmp: 
+0

Kannst du uns 'cat/etc/mongod.conf' zeigen? – niceman

+0

hinzugefügt oben wie angefordert – Nickpick

+0

hmmmm, können Sie uns zeigen 'cat/var/log/mongodb/mongod.log'? – niceman

Antwort

0

Es gab ein paar Probleme

Ändern Sie die Konfigurationsdatei arbeiten:

Zunächst einmal hat die Konfigurationsdatei immer angegeben werden, wenn mongod ausgeführt wird. Andernfalls wird/data/db als Datenbankordner verwendet. Die Art der Ausführung ist also über mongod --config /etc/mongod.conf, und die Standardkonfiguration enthält dbPath: /var/lib/mongodb als Datenbankordner.

Zweitens muss die Konfigurationsdatei wie folgt aussehen. Das # vor der Sicherheit muss entfernt werden.

security: 
    authorization: enabled 

Und drittens, um start service mongod start zu arbeiten, ist es notwendig, die Berechtigung in der mongodb Datenbankordner anpassen, so dass die mongodb Benutzer hat die Erlaubnis, sie zu schreiben (dies ist in der Dokumentation nicht, aber wahrscheinlich selbsterklärend bei jedem, der genug Erfahrung hat). Dies muss mit chown geschehen, da das Skript mongdb als Benutzer (und nicht mehr sudo) verwendet.

Und viertens benutze ich Ubuntu 16, so sudo service mongod Start wird nicht funktionieren. Es muss über sudo systemctl start mongodb erfolgen. Dies wird auch in der mongodb-Dokumentation nicht korrekt erwähnt.

2

Die mongodb-Konfigurationsdatei ist eine YAML-Datei. Außerdem können Sie keine Tabs in der Konfigurationsdatei von mongodb verwenden. Verwenden Sie immer Leerzeichen. In der Konfigurationsdatei haben Sie den Parameter Sicherheit auskommentiert. Kommentar- es und es kann zu

# mongod.conf 

# for documentation of all options, see: 
# http://docs.mongodb.org/manual/reference/configuration-options/ 

# Where and how to store data. 
storage: 
    dbPath: /var/lib/mongodb 
    journal: 
    enabled: true 
# engine: 
# mmapv1: 
# wiredTiger: 

# where to write logging data. 
systemLog: 
    destination: file 
    logAppend: true 
    path: /var/log/mongodb/mongod.log 

# network interfaces 
net: 
    port: 27017 
    bindIp: 0.0.0.0 

#processManagement: 

security: 
    authorization: enabled 

#operationProfiling: 

#replication: 

#sharding: 

#Enterprise-Only Options: 

#auditLog: 

#snmp: 
+0

Also, was ist der richtige Einzug? 2 Räume? – Nickpick

+0

ja. Halten Sie 2 Leerzeichen @nickpick –

+0

Funktioniert nicht.Wenn ich mongod starte, scheint es die conf-Datei zu ignorieren und schaut in den falschen Datenordner. Ausnahme in initAndListen: 29 Datenverzeichnis/data/db nicht gefunden., endend – Nickpick

Verwandte Themen