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