2011-12-12 6 views
16

J'ai eu un arrêt non propre de MongoDB sur Ubuntu 10.04 LTS. Maintenant, quand je me connecte en tant que root et exécuter MongoDB via le service MongoDB commencer, je reçois ci-dessous ERROR-MongoDB - Autorisation refusée pour le socket: /tmp/mongodb-27017.sock

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock 

Quand je lance MongoDB manuellement via root, cela fonctionne très bien.

Je peux confirmer qu'il n'y a pas de fichier /tmp/mongodb-27017.sock

[email protected]:~# ll /tmp/ 
total 16 
drwxr-xr-x 4 root root 4096 2011-12-12 13:53 ./ 
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .ICE-unix/ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .X11-unix/ 

Où dois-je commencer à résoudre?

Répondre

16

Quelles sont les permissions sur/tmp? Est-il possible qu'ils aient été changés?

A

# ls -ld /tmp 

vous le dira.

Si vous êtes incertain essayer:

# chown root:root /tmp 
# chmod 1777 /tmp 

Cela pourrait corriger.

+0

Vous avez raison, après un arrêt non propre, ça a été chamboulé et/tmp n'était plus utilisable par l'utilisateur de MongoDb. – user837208

+0

Génial. Content que nous vous ayons trouvé une réponse. –

+0

Vous sauvez ma journée. Je vous remercie! –

0

Assurez-vous que l'utilisateur Ubuntu mongo a accès au fichier. Le service Mongo Ubuntu utilise l'utilisateur Ubuntu Mongo. Pour trouver le nom d'utilisateur mongo, allez dans le répertoire/var/lib/mongodb et affichez les permissions: ls -l

+0

'root @ devbox: ~ # ls -l/var/lib/MongoDB Total 4 drwxr-xr-x 2 MongoDB MongoDB 4096 2011-12-12 13:53 Journal -rwxr-xr-x 1 mongodb mongodb 0 2011-12-12 13:53 mongod.lock' – user837208

17

Essayez de changer le propriétaire comme celui-ci,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock 
+0

Cela a résolu mon problème! Merci –

+0

Dieu merci, il a finalement travaillé !! Merci! C'est bizarre parce que '/ tmp' avait l'autorisation' rwx' pour tous les trois mais l'opération n'était pas permise jusqu'à ce que j'aie essayé votre exemple. – spicypumpkin

0

J'ai même question, parce que je utiliser MongoDB par root run, il va commencer à échouer avec systemctl sur CentOS 7.3.

Veuillez utiliser l'autorisation correcte pour mongodb. $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

Si nous avons d'autres échouons comme Error reading file /path/file: Permission denied, nous pouvons peut-être réparer par SELinux. D'ailleurs, je ne recommande pas d'utiliser la permission 777, c'est tellement dangereux. : P

Questions connexes