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
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".
- J'Ai D'Abord couru
sudo service mongodb stop
. - 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) avecchown
etchgrp
pour correspondre. (exemple:sudo chown -R mongodb:mongodb /data/db
) - 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. - 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. - 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, essayezsudo 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:
j'utilise cette méthode pour résoudre le problème:
sudo chown -R `id -u` /data/db
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é.
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
.
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
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.
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 /
Où 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
à 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!
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:
-
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
-
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é.
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.
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.
Dans Mycase
En mongodb version 2.6.11 répertoire de base de données par défaut est /var/lib/mongodb/
-
$ sudo chown -R
id -u
/ var/lib / mongodb / -
$ sudo chown-R
id -u
/var/lib/mongodb/mongod.serrure -
$ sudo /etc/init.d/mongod stop
-
$ sudo /etc/init.d/mongod start
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é.
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.
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
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
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
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
sur windows assurez-vous que la console est démarrée comme aministrator
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
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
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
.
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!
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/