Comment faire pour que mongo utilise un lecteur monté sur ec2? Je ne comprends vraiment pas. J'ai attaché un volume sur ec2 formaté le lecteur en tant que root et démarrer en tant que root et pourtant en tant que root, je ne peux pas accéder? Je cours sur Ubuntu 12.04. Aucun autre mongo ne court
Je vois que mongo a créé un dir 'db' dans / data ie / 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, 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
chown mongodb:mongodb on /var/lib/monogdb
également au répertoire de données.Réponses:
J'avais le même problème sur une instance Ubuntu ec2. Je suivais cet article Amazon à la page 7:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
Le chemin Mongodb dans a
/etc/mongodb.conf
été défini sur/var/lib/mongodb
(emplacement d'installation principal et fonctionnement). Quand je suis passé à/data/db
(volume EBS), j'obtenais «errno: 13 Permission refusée».sudo service mongodb stop
.ls -la
de voir à quel groupe et propriétaire mongodb était assigné/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
)etc/mongodb.conf
vers/data/db
et supprimé les anciens fichiers mongo dans le/var/lib/mongodb
répertoire.sudo service mongodb start
et j'ai attendu environ une minute. Si vous essayez de vous connecter immédiatement au 27017, vous ne pourrez pas le faire./data/db
(volume EBS) et mongo devrait avoir placé un journal, mongod.lock, local.ns, local.0, etc. Sinon, essayez desudo service mongodb restart
vérifier une minute plus tard.Je viens de passer plus d'une heure avec ça. Changer le groupe et supprimer les anciens fichiers n'est probablement pas nécessaire, mais c'est ce qui a fonctionné pour moi.
Ceci est une excellente vidéo sur le montage d'un volume ebs sur une instance ec2:
http://www.youtube.com/watch?v=gBII3o3BofU
la source
J'utilise cette méthode pour résoudre le problème:
la source
-R
option et c'est parfait :)id -u
/ data / db pour les non-initiés. :)sudo chown $USER /data/db
au lieu de la commande d'origine.id -U
ou des$USER
trucs. mongo a son propre utilisateur / groupe. vous pouvez et devez coder en dur mongodb: mongodb. donc la commande est simplementsudo chown -R mognodb:mognodb /data/db
Dans mon cas (instance AWS EC2, Ubuntu) a aidé:
Et après cela, tout a bien fonctionné.
la source
/data/db
àUSERNAME
Il vous suffit de donner accès à votre
/data/db
dossier.Tapez
sudo chown -R <USERNAME> /data/db
, remplacez<USERNAME>
par votre nom d'utilisateur.Vous pouvez trouver votre nom d'utilisateur en tapant
whoami
.la source
J'ai installé mongodb avec EBS sur un EC2 avec Ubuntu 14.04 en suivant ce tutoriel:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
Mais au lieu du chown suggéré, j'ai fait:
Pour résoudre le problème
la source
J'ai eu un problème similaire, la raison réelle était qu'il y avait déjà une session mongod en cours d'exécution depuis ma précédente tentative.
L'Iran
et tout le reste s'est déroulé comme prévu.
killall
La commande enverrait un signal TERM à tous les processus avec un UID réel. Donc, cela tue toutes les instances en cours d'exécution de mongod afin que vous puissiez démarrer la vôtre.la source
À partir d'aujourd'hui, j'ai essayé de me frayer un chemin dans le fichier pour créer / ouvrir le fichier de verrouillage: /data/db/mongod.lock errno: 13 Autorisation refusée Une instance de mongod est-elle déjà en cours d'exécution?, Se terminant , et j'ai essayé toutes les réponses publiées ci-dessus sur résoudre ce problème, donc rien n'a fonctionné en ajoutant
Sauf si j'ai ajouté mon autorisation d'utilisateur actuel au chemin de l'emplacement en
J'espère que cela aide quelqu'un. De plus, je viens d'installer Mongo DB sur mon pi. À votre santé!
la source
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 en arrière-plan après les changements. Fonctionnement
m'a montré d'autres tâches utilisant mongo en arrière-plan qui n'étaient pas fermées correctement. J'ai ensuite exécuté kill sur tous ceux en cours d'exécution, puis j'ai pu démarrer mon serveur.
la source
Pour les utilisateurs de mac:
Exécutez ls -ld / data / db / La
sortie doit être quelque chose comme drwrx-xr-x 20 singh wheel 680 21 juil 05:49 / data / db /
Où singh est le propriétaire et wheel est le groupe auquel il appartient .
Exécutez sudo chown -R singh: wheel / data / db
Run mongod
la source
La suppression du fichier mongodb.lock n'était pas le problème dans mon cas. Je l'ai fait et j'ai eu une erreur concernant le port utilisé: [initandlisten] listen (): bind () failed errno: 98 Adresse déjà utilisée pour le socket: 0.0.0.0:27017. J'ai trouvé une autre solution ici: impossible de démarrer le serveur local mongodb avec des instructions pour tuer le processus:
Découvrez sur netstat quel processus exécute le port mongodb (27017)
sudo netstat -tulpn | grep :27017
La sortie sera: tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412 / mongod
Tuez le processus approprié.
sudo kill 1412
(remplacez 1412 par votre ID de processus trouvé à l'étape 1)Et j'ai réussi à redémarrer mongodb avec succès. Je crois que le mien fonctionnait toujours après un arrêt inapproprié.
la source
Pour ceux d'entre vous qui rencontrent cette erreur sous Windows à l'aide du Gestionnaire des tâches, arrêtez l'instance de «mongod.exe» en cours d'exécution. Une fois que cela est fait, supprimez définitivement le fichier mongo.lock et exécutez mongod.exe. Cela devrait fonctionner parfaitement après cela.
la source
Mon mongo (3.2.9) a été installé sur Ubuntu et mon fichier journal comportait les lignes suivantes:
2016-09-28T11: 32: 07.822 + 0100 JE CONTRÔLE [initandlisten] dbexit: rc: 100
Le problème était donc dans les autorisations sur le dossier / var / lib / mongodb.
Correction du problème, même si je me rends compte que ce n'est peut-être pas trop sécurisé (c'est ma propre boîte de développement, je suis dans mon cas), peu après le changement, la base de données et l'authentification ont fonctionné.
la source
Dans Mycase Dans mongodb
version 2.6.11, le 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.lock$ sudo /etc/init.d/mongod stop
$ sudo /etc/init.d/mongod start
la source
J'ai eu le même problème lorsque j'ai exécuté la commande mongod après l'avoir installée sur Windows10. J'ai arrêté le service mongodb et l'ai redémarré. Travailler comme un charme
Commande pour arrêter le service mongodb (dans Windows):
net stop mongodb
Commande pour démarrer le serveur mongodb:
mongod --dbpath PATH_TO_DATA_FOLDER
la source
Sur une instance de Fedora 18 avec Mongo 2.2.4, j'ai pu contourner une erreur similaire en désactivant SELinux en appelant en
setenforce 0
tant que root.BTW, c'était un environnement d'entreprise, pas une instance Amazon EC2, mais les symptômes étaient similaires.
la source
Dans mon cas, le problème a été résolu en supprimant le fichier journal .
Bien que le message d'erreur se réfère spécifiquement au fichier de verrouillage :
la source
Après avoir tué mongod, j'ai eu le même problème: je ne pouvais pas démarrer 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é le verrou directement, je peux redémarrer le processus mongod.
la source
Voici ce que j'ai fait pour résoudre le problème:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Cellar / mongodb / 3.0.7 / bin: $ PATH
$ sudo chown -R
id -u
/ data / dbet puis pour commencer mongo ...
$ mongod
la source
J'ai eu le même problème.
Je l'ai résolu en changeant le statut de selinux en permissif avec la commande ci-dessous:
la source
Faire
ls -la
connaître l'utilisateur et le groupe de / var / log / mongodb. Ensuitesudo chown -R user:group /data/db
, exécutez maintenantsudo service mongodb start
. Vérifiez l'état avecsudo service mongodb status
la source
Sous Windows, assurez-vous que la console est démarrée en tant qu'inistrateur
la source
Vous pouvez essayer par ces moyens. 1er.
mais à certains moments, ce n'est pas utile. 2ème. si la méthode ci-dessus n'est pas utile, vous pouvez essayer de le faire:
ou tapez:
pour obtenir le flux de sortie
la source
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
.la source
Si vous voulez littéralement une ligne équivalente aux commandes de votre question d'origine, vous pouvez alias:
https://stackoverflow.com/a/11777141/7160782
la source
Dans Centos Server
cela fonctionne pour moi
la source
Vous avez une erreur similaire, corrigée en supprimant tous les enregistrements (dans le répertoire
journals
et le fichier de mon casmongo.lock...
), après ce port de vérification avecsudo lsof -i:27017
, si smth s'exécute dessuskill <PID of the process>
, et essayez de./mongod
recommencerla source
Réparer:
sudo mongod
J'ai eu le même problème, exécuter mongod avec les privilèges sudo l'a corrigé. Venant d'un environnement Windows, j'ai utilisé juste
mongod
pour démarrer le démon, et bien il semble que nous ayons besoin des privilèges de superutilisateur pour accéder à / data / db.Vous pouvez également accorder aux utilisateurs non root des autorisations de lecture et d'écriture sur ce chemin. Vérifiez les réponses ci-dessus pour un guide!
la source
Chaque fois que vous essayez de démarrer mongod, tapez simplement
ou si vous voulez définitivement résoudre ce problème, essayez simplement de donner la prémission rwx au dossier / data / db
la source