MongoDB:/data/db/yourdb.ns konnte nicht geöffnet werden

MongoDB: /data/db/yourdb.ns konnte nicht geöffnet werden. Fehlernr .: 13 Berechtigung verweigert

Beim Starten des MongoDB-Servers wird der Fehler "Berechtigung verweigert" in einer der Datenbanken angezeigt und der Server wird automatisch heruntergefahren.

$ mongod
Fri Mar  8 22:54:46 [initandlisten] MongoDB starting : pid=13492
    port=27017 dbpath=/data/db/ 64-bit host=Yongs-MacBook-Air.local
//...
Fri Mar  8 22:54:46 [initandlisten] journal dir=/data/db/journal
Fri Mar  8 22:54:46 [initandlisten] recover : no journal files present, no recovery needed
Fri Mar  8 22:54:46 [initandlisten] couldn't open /data/db/yourdb.ns errno:13 Permission denied
Fri Mar  8 22:54:46 [initandlisten] error couldn't open file /data/db/yourdb.ns terminating
Fri Mar  8 22:54:46 dbexit:
Fri Mar  8 22:54:46 [initandlisten] shutdown: going to close listening sockets...
Fri Mar  8 22:54:46 [initandlisten] shutdown: going to flush diaglog...
Fri Mar  8 22:54:46 [initandlisten] shutdown: going to close sockets...
Fri Mar  8 22:54:46 [initandlisten] shutdown: waiting for fs preallocator...
Fri Mar  8 22:54:46 [initandlisten] shutdown: lock for final commit...
Fri Mar  8 22:54:46 [initandlisten] shutdown: final commit...
Fri Mar  8 22:54:46 [initandlisten] shutdown: closing all files...
Fri Mar  8 22:54:46 [initandlisten] closeAllFiles() finished
Fri Mar  8 22:54:46 [initandlisten] journalCleanup...
Fri Mar  8 22:54:46 [initandlisten] removeJournalFiles
Fri Mar  8 22:54:46 [initandlisten] shutdown: removing fs lock...
Fri Mar  8 22:54:46 dbexit: really exiting now

Lösung

Die Fehlermeldung zeigt an, dass Sie keine Berechtigung zum Zugriff auf die Datenbank vonyourdb.nshaben. Überprüfen Sie das MongoDB-Datenverzeichnis/data/db/, die Datenbankyourdb.ns gehört dem Root-Benutzer.

$ ls -ls /data/db

      0 drwxr-xr-x  2 example  wheel          68 Mar  8 22:54 journal
 131072 -rw-------  1 root    wheel    67108864 Mar  7 17:01 yourdb.0
 262144 -rw-------  1 root    wheel   134217728 Mar  7 16:15 yourdb.1
  32768 -rw-------  1 root    wheel    16777216 Mar  7 17:01 yourdb.ns

$whoami
example

Weisen Sie der Datenbank die Berechtigung zu, um das Problem zu beheben.

$ sudo chown -R example /data/db

$ ls -ls /data/db

      0 drwxr-xr-x  2 example  wheel          68 Mar  8 22:54 journal
 131072 -rw-------  1 example  wheel    67108864 Mar  7 17:01 yourdb.0
 262144 -rw-------  1 example  wheel   134217728 Mar  7 16:15 yourdb.1
  32768 -rw-------  1 example  wheel    16777216 Mar  7 17:01 yourdb.ns