it-swarm.com.de

Sperrdatei kann nicht erstellt/geöffnet werden: /data/mongod.lock errno: 13 Berechtigung verweigert

Wie bekomme ich Mongo, um ein montiertes Laufwerk auf der ec2 zu verwenden? Ich verstehe es wirklich nicht. Ich habe ein Volume auf ec2 angehängt, das Laufwerk als root formatiert und als root gestartet und doch als root kann ich nicht zugreifen? Ich laufe am ubuntu 12.04. Kein anderer Mongo läuft

Ich sehe, dass Mongo ein 'db'-Verzeichnis in/data erstellt hat, d. H./Data/db

cd /
ls -al
drwxr-xr-x  4 root root  4096 Mar  5 16:28 data

cd /data
ls -al
total 28
drwxr-xr-x  4 root root  4096 Mar  5 16:28 .
drwxr-xr-x 24 root root  4096 Mar  5 16:28 ..
drwxr-xr-x  2 root root  4096 Mar  5 16:28 db
drwx------  2 root root 16384 Mar  5 16:20 lost+found


Sudo mkfs.ext3 /dev/xvdh
Sudo mkdir /data
Sudo su - -c 'echo "/dev/xvdh %s auto noatime 0 0" | Sudo tee -a /etc/fstab'
Sudo mount /data

Sudo service mongodb start
mongodb start/running, process 17169

Sudo ps -ef | grep mongod
ubuntu   15763 15634  0 16:32 pts/2    00:00:00 tail -f mongodb.log
ubuntu   18049 15766  0 16:43 pts/3    00:00:00 grep --color=auto mongod


Tue Mar  5 16:33:15 [initandlisten] MongoDB starting : pid=15890 port=27017 dbpath=/data 64-bit Host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:33:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:33:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:33:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:33:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:33:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:33:15 dbexit: 
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:33:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:33:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:33:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:33:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:33:15 dbexit: really exiting now

Unten ist, wenn ich neu starte, wenn ich eine Sperrdatei entferne ....

Tue Mar  5 16:59:15 [initandlisten] MongoDB starting : pid=21091 port=27017 dbpath=/data 64-bit Host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:59:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:59:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:59:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:59:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:59:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:59:15 dbexit: 
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:59:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:59:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:59:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:59:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:59:15 dbexit: really exiting now
180
Tampa

Ich hatte das gleiche Problem in einer Ubuntu-ec2-Instanz. Ich habe diesen Amazon-Artikel auf Seite 7 verfolgt:

http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf

Der Mongodb-Pfad in /etc/mongodb.conf wurde auf /var/lib/mongodb gesetzt (primärer Installationsort und funktionsfähig). Als ich zu /data/db (EBS-Band) wechselte, bekam ich 'errno: 13 Permission denied'.

  1. Zuerst lief ich Sudo service mongodb stop.
  2. Dann habe ich ls -la verwendet, um zu sehen, welche Gruppe & Besitzer mongodb /var/lib/mongodb (vorhandener Pfad) zugewiesen hat, und ich habe /data/db (neuer Pfad) mit chown und chgrp entsprechend geändert. (Beispiel: Sudo chown -R mongodb:mongodb /data/db)
  3. Dann habe ich den Pfad in etc/mongodb.conf zu /data/db aktualisiert und die alten Mongo-Dateien im /var/lib/mongodb-Verzeichnis gelöscht.
  4. Dann lief ich Sudo service mongodb start und wartete etwa eine Minute. Wenn Sie versuchen, sofort eine Verbindung zu 27017 herzustellen, können Sie dies nicht tun.
  5. Nach einer Minute sollten /data/db (EBS-Band) und Mongo ein Journal, mongod.lock, local.ns, local.0 usw. platziert haben. Wenn nicht, probieren Sie Sudo service mongodb restart und prüfen Sie eine Minute später.

Ich habe gerade über eine Stunde damit verbracht. Das Ändern der Gruppe und das Löschen der alten Dateien ist wahrscheinlich nicht notwendig, aber das hat bei mir funktioniert.

Dies ist ein großartiges Video zum Mounten eines EBS-Volumes in die ec2-Instanz:

http://www.youtube.com/watch?v=gBII3o3BofU

106
Randy Swanson

Ich verwende diese Methode, um das Problem zu lösen:

Sudo chown -R mongodb:mongodb /data/db
475
Haimei

In meinem Fall (AWS EC2-Instanz, Ubuntu) hat Folgendes geholfen:

$ Sudo mkdir -p /data/db/
$ Sudo chown `USERNAME` /data/db

Und danach hat alles gut funktioniert.

80
Belhor

Sie müssen lediglich Zugriff auf Ihren /data/db-Ordner geben. 

Geben Sie Sudo chown -R <USERNAME> /data/db ein und ersetzen Sie <USERNAME> durch Ihren Benutzernamen. 

Sie können Ihren Benutzernamen finden, indem Sie whoami eingeben. 

50

Ich habe mongodb mit EBS auf einer EC2 mit Ubuntu 14.04 installiert.

http://docs.mongodb.org/ecosystem/platforms/Amazon-ec2/

Aber anstelle des vorgeschlagenen Chowns tat ich:

Sudo chown -R mongodb:mongodb /data /log /journal

Um das Problem zu lösen

12
Evers

Ich hatte ein ähnliches Problem. Der eigentliche Grund war, dass bereits in meinem vorherigen Versuch eine Mongod-Sitzung lief. 

Ich rannte 

killall mongod

und alles andere lief wie erwartet.

Der Befehl killall würde ein TERM-Signal an alle Prozesse mit einer echten UID senden. Dadurch werden alle laufenden Instanzen von Mongod getötet, sodass Sie Ihre eigenen starten können. 

9
Venkatesh SGS

Für Mac-Benutzer: 
Führen Sie ls -ld/data/db /aus. _ 
Die Ausgabe sollte etwas sein wie drwrx-xr-x 20 singh wheel 680 21 Jul 05:49/data/db /
Dabei ist singh der Besitzer und Rad die Gruppe, zu der er gehört. 
Führen Sie Sudo chown -R singh: wheel/data/db aus. 
Führen Sie mongod aus. 

6
amanSingh

Ich hatte ein ähnliches Problem und befolgte alle obigen Anweisungen bezüglich des Wechsels von Besitzern mit Sudo chown usw. Ich hatte immer noch eine Instanz von Mongodb, die nach den Änderungen im Hintergrund lief. Laufen

ps auxw | grep mongo 

zeigte mir andere Aufgaben mit Mongo, die im Hintergrund ausgeführt wurden und nicht ordnungsgemäß geschlossen wurden. Ich habe dann Kill auf allen laufen gelassen und konnte dann meinen Server starten. 

6
Eugene G

Ab heute habe ich versucht, mich durch die ) - Sperrdatei zu bewegen, um sie zu erstellen/zu öffnen: /data/db/mongod.lock errno: 13 Berechtigung verweigert Wird eine mongod-Instanz bereits ausgeführt ?, wird sie beendet und versuchte alle oben angegebenen Antworten, um dieses Problem zu lösen

Sudo chown -R mongodb: mongodb/data/db

Es sei denn, ich habe meine aktuelle Benutzerberechtigung dem Standortpfad von hinzugefügt

Sudo chown $ USER/data/db

Hoffe das hilft jemandem. Außerdem habe ich gerade Mongo DB auf meinem Pi installiert. Prost!

6
Abdullah

Das Entfernen der Datei mongodb.lock war in meinem Fall nicht das Problem. Ich tat es und bekam eine Fehlermeldung über den verwendeten Port: [initandlisten] listen (): bind () fehlgeschlagen. Ich habe hier eine andere Lösung gefunden: mongodb local server konnte nicht gestartet werden, mit Anweisungen zum Beenden des Prozesses:

  1. Finden Sie bei netstat heraus, welcher Prozess den mongodb-Port (27017) ausführt.

    Sudo netstat -tulpn | grep :27017

    Die Ausgabe lautet: tcp 0 0 0.0.0.0:27017 0.0.0.0:* HÖREN Sie 1412/mongod

  2. Beenden Sie den entsprechenden Prozess.

    Sudo kill 1412 (ersetzen Sie 1412 durch Ihre in Schritt 1 gefundene Prozess-ID)

Und ich konnte mongodb wieder erfolgreich starten. Ich glaube, meine lief immer noch von einem unpassenden Herunterfahren.

4
Casey Murray

Wenn Sie diesen Fehler unter Windows mit dem Task-Manager feststellen, beenden Sie die ausgeführte Instanz von "mongod.exe". Löschen Sie danach die Datei mongo.lock dauerhaft und führen Sie mongod.exe aus. Danach sollte es perfekt funktionieren.

4
b_kik

Mein Mongo (3.2.9) wurde auf Ubuntu installiert, und meine Protokolldatei enthielt folgende Zeilen:

2016-09-28T11:32:07.821+0100 E STORAGE  [initandlisten] WiredTiger (13) [1475058727:821829][6785:0x7fa9684ecc80], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied 
2016-09-28T11:32:07.822+0100 I -        [initandlisten] Assertion: 28595:13: Permission denied 
2016-09-28T11:32:07.822+0100 I STORAGE  [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating

2016-09-28T11: 32: 07.822 + 0100 I CONTROL [initandlisten] dbexit: rc: 100

Das Problem bestand also in den Berechtigungen für den Ordner/var/lib/mongodb.

Sudo chown -R mongodb:mongodb /var/lib/mongodb/
Sudo chmod -R 755 /var/lib/mongodb
  • Starten Sie den Server neu

Behoben, obwohl ich weiß, dass dies möglicherweise nicht zu sicher ist (ich bin in meinem Fall meine eigene Dev-Box). 

3
Nestor Milyaev

In meinem Fall
In mongodb Version 2.6.11 ist das Standarddatenbankverzeichnis /var/lib/mongodb/.

  1. $ Sudo chown -R id -u/var/lib/mongodb / 

  2. $ Sudo chown -R id -u /var/lib/mongodb/mongod.lock

  3. $ Sudo /etc/init.d/mongod stop 

  4. $ Sudo /etc/init.d/mongod start

2
vijay

So habe ich das Problem behoben: 

$ Sudo mkdir -p/data/db

$ export PATH =/usr/local/Cellar/mongodb/3.0.7/bin: $ PATH

$ Sudo chown -R id -u/data/db

und dann mongo starten ...

$ mongod

1
user4660857

In meinem Fall wurde das Problem gelöst, indem die Dateilogentfernt wurde.

Sudo rm /log/mongod.log

Obwohl sich die Fehlermeldung speziell auf die Dateilockbezieht:

exception in initAndListen: 10309 Unable to create/open lock file: 
/data/mongod.lock errno:13 Permission denied 
Is a mongod instance already running?, terminating
1
Ian Mercer

Nachdem ich den Mongod getötet hatte, hatte ich das gleiche Problem: Der Mongod konnte nicht gestartet werden.

$> Sudo kill `pidof mongod`

2015-08-03T05:58:41.339+0000 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongodbtest/replset/data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

Nachdem ich die Sperre direkt gelöscht habe, kann ich den Mongod-Prozess erneut starten.

$>  rm -rf /data/mongodbtest/replset/data/mongod.lock
1
Andy Dong

Bei einer Fedora 18-Instanz mit Mongo 2.2.4 konnte ich einen ähnlichen Fehler umgehen, indem ich SELinux durch Aufruf von setenforce 0 als root inaktivierte.

BTW, dies war eine Unternehmensumgebung, keine Amazon EC2-Instanz, aber die Symptome waren ähnlich.

1
GSP

Wenn Sie buchstäblich eine Zeile wünschen, die den Befehlen in Ihrer ursprünglichen Frage entspricht, können Sie einen Aliasnamen verwenden:

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

https://stackoverflow.com/a/11777141/7160782

0
Mohammad Bayat

Vergewissern Sie sich unter Windows, dass die Konsole als Administrator gestartet ist

0
Iacobescu Radu

Für mich bei CentOS 6.x:

Sudo chown -R mongodb:mongodb <db-path> Sudo service mongod restart

Und ich habe einen benutzerdefinierten db-path in /etc/mongod.conf eingestellt.

0
osrpt

Ich hatte das gleiche Problem. 

Ich habe es gelöst, indem ich den selinux-Status mit dem folgenden Befehl in permissiv geändert habe:

setenforce 0
0
Maryam Jafari

Informieren Sie sich ls -laum den Benutzer und die Gruppe von /var/log/mongodb. Dann führen Sie Sudo chown -R user:group /data/dbJetzt aus, Sudo service mongodb start. Überprüfen Sie den Status mit Sudo service mongodb status

0
Tasneem Haider

In Centos Server

das funktioniert bei mir

chown -R mongod:mongod /var/lib/mongo
0
Rajiv Sharma

Ich habe das gleiche Problem, als ich den Befehl mongod nach der Installation unter Windows 10 ausgeführt habe. Ich stoppte den Mongodb-Dienst und startete ihn erneut. Arbeiten wie ein Zauber

Befehl zum Beenden des Mongodb-Dienstes (in Windows): net stop mongodb

Befehl zum Starten des Mongodb-Servers: mongod --dbpath PATH_TO_DATA_FOLDER

0
aditya

Sie können es auf diese Weise versuchen. 1..

Sudo chown -R mongod: mongod/data/db

aber manchmal ist dies nicht nützlich.

mkdir/data/db #der Datenbankspeicherpfad

Nohup mongod --dbpath/data/db &

oder Typ:

mongod --dbpath/data/db

um den Ausgabestrom zu erhalten

0
Wotchin