2011-12-12 12 views
16

Tuve un cierre sucio de MongoDB en Ubuntu 10.04 LTS. Ahora, cuando entra como root y ejecutar MongoDB MongoDB a través del servicio arranca, a continuación de erroresMongoDB - Permiso denegado para 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 

Cuando corro MongoDB manualmente a través de la raíz, funciona muy bien.

puedo confirmar que no hay ningún archivo /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/ 

¿Por dónde empezar la solución de problemas?

Respuesta

16

¿Cuáles son los permisos de archivo en/tmp? ¿Es posible que hayan sido cambiados?

Un

# ls -ld /tmp 

le dirá.

Si usted es inseguro intento:

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

que podrían solucionarlo.

+0

Tienes razón, después de un cierre sucio, Thins se arruinó y/tmp ya no podía escribirse por el usuario de MongoDb. – user837208

+0

Genial. Me alegra que hayamos encontrado una respuesta. –

+0

Me salvaste el día. ¡Gracias! –

0

Asegúrese de que el usuario de Ubuntu mongo tenga acceso al archivo. El servicio Mongo Ubuntu utiliza el usuario de Ubuntu Mongo. Para averiguar el nombre de usuario de mongo, vaya al directorio/var/lib/mongodb y muestre los permisos: ls -l

+0

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

17

Intente cambiar propietario de esta manera,

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

¡Esto solucionó mi problema! Gracias –

+0

¡Gracias a Dios que finalmente funcionó! ¡Gracias! Es extraño porque '/ tmp' tenía el permiso' rwx' para los tres, pero la operación no estaba permitida hasta que probé tu ejemplo. – spicypumpkin

0

Tengo mismo problema, porque tengo uso mongodb plazo de raíz, que comenzará a fallar con systemctl en CentOS 7.3.

Utilice el permiso correcto para mongodb. $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

Si tenemos otra fallar Como Error reading file /path/file: Permission denied, tal vez podamos solucionarlo por SELinux. $ sudo chcon -v -t mongod_var_lib_t /path/file

Por cierto, no recomiendo usar el permiso 777, es tan peligroso. : P