mongodb Installation fehlgeschlagen

  • Ich musste knoten.js und mongodb lernen, was bedeutet, dass ich meinen Mac osx verwenden muss, also bin ich neu in der Shell-Befehlszeilenschnittstelle.

    Problem: Wenn ich den Anweisungen auf der mongodb-Website gefolgt bin und mongodb installiert und versucht habe zu laufen, erhalte ich die folgenden Fehlermeldungen. Irgendeine Idee, was falsch gelaufen ist?

    Was ich getan habe:

    1. [li> brew install mongodb
    2. sudo mkdir -p /data/db
    3. sudo chmod 0755 /data/db
    4. sudo chown mongod:mongod /data/db
    5. ol>

      Fehler: chown: mongod: Invalid argument

      Was habe ich als Nächstes getan:

      1. mongod

      Fehler:

       Mon Nov 21 18:55:08 [initandlisten] MongoDB starting : pid=28304 port=27017 dbpath=/data/db/ 64-bit host=MacBook-Air.local
      Mon Nov 21 18:55:08 [initandlisten] db version v2.0.1, pdfile version 4.5
      Mon Nov 21 18:55:08 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684
      Mon Nov 21 18:55:08 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
      Mon Nov 21 18:55:08 [initandlisten] options: {}
      Mon Nov 21 18:55:08 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
      Mon Nov 21 18:55:08 dbexit: 
      Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close listening sockets...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: going to flush diaglog...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close sockets...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: waiting for fs preallocator...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: lock for final commit...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: final commit...
      Mon Nov 21 18:55:08 [initandlisten] shutdown: closing all files...
      Mon Nov 21 18:55:08 [initandlisten] closeAllFiles() finished
      Mon Nov 21 18:55:08 [initandlisten] shutdown: removing fs lock...
      Mon Nov 21 18:55:08 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
      Mon Nov 21 18:55:08 dbexit: really exiting now
       

      Wenn Sie ein ls -ld /data/db machen, erhalten Sie:

       drwxr-xr-x  2 root  wheel  68 Nov 21 18:46 /data/db
       
    22 November 2011
    Nyxynyx
4 answers
  • Nyxynyx-

    Es sieht aus wie ein Problem mit den Dateiberechtigungen. Sie haben / data / db als root erstellt, dh root ist der Eigentümer, und der Befehl chown ist fehlgeschlagen (haben Sie bereits einen Benutzer mit dem Namen mongod auf Ihrem System? Andernfalls schlägt dieser Befehl fehl), so dass der Eigentümer noch root war. Aber dann haben Sie mongod als normaler Benutzer ausgeführt, sodass keine Sperrdatei im Datenverzeichnis erstellt werden konnte. Sie könnten Folgendes tun:

    1. Ausführen von mongod als root
    2. Oder erstellen Sie einen Mongod-Benutzer, und führen Sie "chown" erneut für Mongod aus. Führen Sie dann Mongod als Benutzer mongod
    3. aus. Oder ändern Sie den Besitzer des Datenverzeichnisses zu Ihrem aktuellen Benutzerkonto und führen Sie Mongo als Benutzerkonto aus.
    22 November 2011
    mpobrien
  • Ich hatte das gleiche Problem, und so habe ich es ganz einfach behoben:

    Meine Datenbank war voll mit Müll, den ich nicht mehr wollte, also ich Mein Ordner /data/ wurde über Terminal gelöscht und mit folgendem Befehl neu erstellt:

     sudo mkdir /data/
     

    Ich denke, dass der Ordner mit erstellt wird Root-Zugriff über das Terminal verursachte das Problem. Stattdessen habe ich einfach alles wieder gelöscht und bin dann mit dem Finder zum Stammordner gegangen.

    Klicken Sie mit der rechten Maustaste & gt; Neuer Ordner & gt; Passwort eingeben & gt; Umbenennen in Daten & gt; neuer Ordner & gt; Umbenennen in db

    Dann lief ich einfach mongod wie üblich, und es hat funktioniert!

    Ich weiß, das ist ein "Dummy" "Art und Weise, Dinge zu tun, um alle hax - Berechtigungen und dergleichen zu vermeiden, aber es hat funktioniert!

    22 September 2012
    Filip Radelic
  • Sie müssen mongod mit dem Root-Benutzer ausführen. Führen Sie einfach folgenden Befehl aus:

     sudo mongod
     
    11 January 2014
    Saifee
  • Was Sie getan haben:

     1.`brew install mongodb`-fine
    2.`sudo mkdir -p /data/db`-fine
    3.`sudo chmod 0755 /data/db`-fine
    4.`sudo chown mongod:mongod /data/db`-fine
     

    Führen Sie nun den nächsten Schritt aus:

    ./mongod --dbpath /data/db --port 27017

    ./mongo --port 27020

    05 March 2015
    JERRYHans Adiputra Arijanto