Impossible de créer/ouvrir le fichier lock: /data/mongod.serrure errno: 13 Permission refusée

Comment faire pour que mongo utilise un entraînement monté sur ec2? Je ne comprends vraiment pas. J'ai joint un volume sur ec2 formaté le lecteur comme root et commencer comme root et pourtant comme root Je ne peux pas accéder? Je suis en cours d'exécution sur ubuntu 12.04. Aucun autre mongo ne court

je vois que mongo fait une 'db' dir /c. données /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

ci-dessous est si je redémarre lorsque je supprime un fichier de verrouillage....

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
176
demandé sur Tampa 2013-03-05 20:44:38

24 réponses

j'ai eu le même problème sur un Ubuntu instance ec2. Je suivais cet article d'amazon à la page 7:

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

Mongodb chemin dans /etc/mongodb.conf est réglé sur /var/lib/mongodb (primaire emplacement d'installation et de travail). Quand j'ai changé pour /data/db (EBS volume) je recevais "errno:13 Permission denied".

  1. J'Ai D'Abord couru sudo service mongodb stop .
  2. puis j'ai utilisé ls -la pour voir quel groupe et propriétaire mongodb affecté à /var/lib/mongodb (chemin existant) et j'ai changé le /data/db (nouveau chemin) avec chown et chgrp pour correspondre. (exemple: sudo chown -R mongodb:mongodb /data/db )
  3. puis j'ai mis à jour le chemin dans etc/mongodb.conf en /data/db et j'ai supprimé les vieux fichiers mongo dans /var/lib/mongodb répertoire.
  4. puis j'ai couru sudo service mongodb start et j'ai attendu environ une minute. Si vous essayez de vous connecter à 27017 immédiatement vous ne pourrez pas.
  5. après une vérification minute /data/db (EBS volume) et mongo aurait dû placer un journal, mongod.de verrouillage, local.ns, local.0, etc. Sinon, essayez sudo service mongodb restart et vérifiez une minute plus tard.

je viens de passer plus d'une heure avec cette. Changer le groupe et supprimer les vieux fichiers n'est probablement pas nécessaire, mais c'est ce qui a fonctionné pour moi.

C'est une excellente vidéo à propos du montage d'un volume ebs sur EC2 instance:

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

101
répondu Randy Swanson 2016-02-22 08:21:10

j'utilise cette méthode pour résoudre le problème:

sudo chown -R `id -u` /data/db
469
répondu Haimei 2014-10-29 03:15:06

dans mon cas (AWS EC2 instance, Ubuntu) aidé:

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

et après ça, tout a bien fonctionné.

80
répondu Belhor 2013-06-28 14:42:04

vous avez juste à donner accès à votre dossier /data/db .

Type sudo chown -R <USERNAME> /data/db , remplacer <USERNAME> par votre nom d'utilisateur.

Vous pouvez trouver votre nom d'utilisateur en tapant whoami .

49
répondu julien bouteloup 2015-09-17 12:59:23

j'ai installé mongodb avec EBS sur un EC2 avec Ubuntu 14.04 suite à ce tutoriel:

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

mais au lieu du chown suggéré j'ai fait:

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

pour corriger le problème

12
répondu Evers 2014-11-28 12:03:27

j'ai eu un problème similaire et j'ai suivi toutes les instructions ci-dessus concernant le changement de propriétaire en utilisant sudo chown etc. J'avais encore une instance de mongodb courant en arrière-plan après les changements.

ps auxw | grep mongo 

m'a montré d'autres tâches utilisant mongo en arrière-plan qui n'étaient pas fermées correctement. J'ai ensuite lancé kill sur tous ceux qui tournent et j'ai pu démarrer mon serveur.

6
répondu Eugene G 2015-07-08 03:03:19

pour les utilisateurs mac:

Run ls-ld / data / db/

La sortie devrait être quelque chose comme drwrx-xr-x 20 singh wheel 680 21 Jul 05: 49 / data/db /

singh est le propriétaire et l' roue est le groupe auquel il appartient.

Exécuter sudo chown -R singh:roue /data/db

Run mongod

6
répondu amanSingh 2016-07-20 20:07:15

à partir d'aujourd'hui, j'ai essayé de me frayer un chemin à travers le pour créer/ouvrir le fichier lock: /data/db/mongod.lock errno: 13 Permission denied est-ce qu'une instance de mongod est déjà en cours d'exécution?, mettant fin à , et essayé toute la réponse posté ci-dessus pour résoudre ce problème, donc rien n'a fonctionné en ajoutant

sudo chown-R mongodb: mongodb / data /db

sauf si j'ai ajouté mon utilisateur actuel autorisation d'accès au chemin de localisation par

sudo chown $USER /data /db

J'espère que ça aidera quelqu'un. J'ai aussi installé Mongo DB sur mon pi. Acclamations!

6
répondu Abdullah 2017-02-13 02:06:48

suppression du mongodb.fichier de verrouillage n'était pas le problème dans mon cas. Je l'ai fait et j'ai eu une erreur sur le port utilisé: [initandlisten] listen(): bind() a échoué errno:98 Adresse déjà utilisée pour socket: 0.0.0.0:27017. J'ai trouvé une autre solution ici: incapable de démarrer mongodb serveur local avec des instructions pour tuer le processus:

  1. Découvrez auprès de netstat Quel est le processus en cours d'exécution port mongodb (27017)

    sudo netstat -tulpn | grep :27017

    sortie sera: tcp 0 0 0.0.0.0:27017 0.0.0: * LISTEN 1412 / mongod

  2. tuer le procédé approprié.

    sudo kill 1412 (remplacer 1412 par votre numéro de processus à l'étape 1)

et j'ai réussi à relancer mongodb. Je crois que le mien était toujours en train de fuir un arrêt inapproprié.

4
répondu Casey Murray 2017-05-23 12:34:50

pour ceux d'entre vous rencontrant cette erreur sur Windows en utilisant le Gestionnaire des tâches et l'instance de" mongod.exe" qui est en cours d'exécution. Une fois que cela est fait supprimer définitivement la mongo.verrouille le fichier et lance mongod.EXE. Ça devrait marcher parfaitement après ça.

4
répondu b_kik 2015-08-13 12:18:45

j'ai eu un problème similaire, la raison réelle était qu'il y avait déjà la session mongod en cours de ma précédente tentative.

j'ai couru

killall mongod

et tout le reste s'est déroulé comme prévu.

La commande

killall enverrait un signal de terme à tous les processus avec un véritable UID. Donc ça tue toutes les instances de mongod pour que tu puisses démarrer la tienne.

3
répondu SGS Venkatesh 2017-06-21 03:19:01

Dans Mycase

En mongodb version 2.6.11 répertoire de base de données par défaut est /var/lib/mongodb/

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

  2. $ sudo chown-R id -u /var/lib/mongodb/mongod.serrure

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

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

2
répondu vijay 2016-01-07 19:23:05

Mon mongo (3.2.9) a été installé sur Ubuntu, et mon journal de fichier les lignes suivantes:

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

Donc, le problème était dans les permissions sur /var/lib/mongodb dossier.

sudo chown -R mongodb:mongodb /var/lib/mongodb/
sudo chmod -R 755 /var/lib/mongodb
  • redémarrer le serveur

réparé, bien que je réalise que peut-être pas trop sûr (c'est ma propre dev box Je suis dans mon cas), peu après le changement db et authentification ont fonctionné.

2
répondu Nestor Milyaev 2016-09-28 10:46:51

sur un Fedora 18 avec Mongo 2.2.4 instance j'ai pu contourner une erreur similaire en désactivant SELinux en appelant setenforce 0 comme root.

BTW, c'était un environnement d'entreprise, pas un EC2 amazonien, mais les symptômes étaient similaires.

1
répondu GSP 2013-07-19 13:08:51

dans mon cas, la question a été résolue en retirant le fichier " log .

sudo rm /log/mongod.log

bien que le message d'erreur se réfère spécifiquement au lock fichier:

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
répondu Ian Mercer 2014-09-29 20:05:30

après avoir tué mongod, j'ai eu le même problème: je n'ai pas pu démarrer mongod.

$> 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

après avoir supprimé la serrure directement, je peux redémarrer le processus mongod.

$>  rm -rf /data/mongodbtest/replset/data/mongod.lock
1
répondu Andy Dong 2015-08-03 06:08:52

C'est ce que j'ai fait pour corriger le problème:

$ sudo mkdir-p/data / db

$sentier d'exportation= / usr / local/cave/mongodb / 3.0.7 / bin:$sentier

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

et ensuite commencer mongo...

$ mongod

1
répondu user4660857 2015-11-20 02:11:30

Faire ls -la connaître l'utilisateur et de groupe de /var/log/mongodb. Alors faites sudo chown -R user:group /data/db Maintenant, Lancez sudo service mongodb start . Vérifier l'état avec sudo service mongodb status

0
répondu Tasneem Haider 2016-08-01 17:58:32

sur windows assurez-vous que la console est démarrée comme aministrator

0
répondu Iacobescu Radu 2016-08-29 08:49:27

j'ai eu le même problème.

Je l'ai résolu en changeant le statut selinux en permissif avec la commande ci-dessous:

setenforce 0
0
répondu Maryam Jafari 2017-08-20 07:44:37

Vous pouvez essayer par ces moyens. 1er.

sudo chown-R mongod: mongod / data /db

mais à certains moments,ce n'est pas utile. À la 2ème place. si la manière ci-dessus n'est pas utile,vous pouvez essayer de le faire:

mkdir /data/db #comme le stockage de base de données de "chemin de 151910920"

nohup mongod --dbpath / data / db &

ou type:

mongod -- dbpath / data /db

pour obtenir le flux de sortie

0
répondu Wotchin 2017-12-27 04:00:20

pour moi sur CentOS 6.x:

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

Et j'ai mis une coutume db-path dans /etc/mongod.conf .

0
répondu osrpt 2018-09-05 15:56:08

Fix: sudo mongod

j'ai eu le même problème, en lançant mongod avec sudo privilèges corrigé. Venant d'un environnement windows, j'ai juste utilisé mongod pour démarrer le démon, et bien il semble que nous ayons besoin des privilèges de super-utilisateur pour accéder à /data/db.

vous pouvez également donner aux utilisateurs non root des permissions de lecture et D'écriture sur ce chemin. consultez les réponses ci-dessus pour obtenir un guide!

-1
répondu aimuhire 2018-05-30 10:07:40

chaque fois que vous essayez de lancer mongod tapez juste

sudo mongod

ou si vous voulez corriger cela en permanence, essayez simplement de donner une premission rwx à/data / db folder

 chmod +rwx data/
-1
répondu shishir bondre 2018-05-31 07:00:41