mongodb ubuntu-13.04

Error "Error al desvincular el archivo de socket" en MongoDB 3.0



ubuntu-13.04 (6)

Alternativa a la respuesta proporcionada por KurioZ7, simplemente puede configurar los permisos del archivo .sock para el usuario actual:

sudo chown `whoami` /tmp/mongodb-27017.sock

Esto me sirve si quiero ejecutar mongod sin sudo. Si elimino el archivo como en la respuesta de KurioZ7, simplemente obtendré el mismo error la próxima vez que reinicie mi máquina.

Soy nuevo en MongoDB. Estoy tratando de instalar MongoDb 3.0 en Ubuntu 13.0 LTS, que es una VM en Windows 7 Host. He instalado MongoDB correctamente (paquetes, etc.), pero cuando ejecuto el comando sudo service mongod start , sudo service mongod start el siguiente error en el archivo de registro "/var/log/mongodb/mongod.log". ¿Alguien puede ayudarme a entender este error? No hay nada en internet relacionado con esto.

2015-04-23T00: 12: 00.876-0400 I CONTROL ***** SERVIDOR REINICIADO ***** 2015-04-23T00: 12: 00.931-0400 RED E [initandlisten] Error al desvincular el archivo socket / tmp / mongodb -27017.soc k errno: 1 Operación no permitida 2015-04-23T00: 12: 00.931-0400 I - [initandlisten] Afirmación fatal 28578 2015-04-23T00: 12: 00.931-0400 I - [initandlisten]


Este problema ocurre cuando usa el comando

mongod

Antes de usar el comando

sudo service mongod start

Para solucionar el problema, ya sea:

Establezca los permisos apropiados en el archivo:

/tmp/mongodb-27017.sock

O

Eliminar el archivo

/tmp/mongodb-27017.sock

correr

sudo service mongod start && mongod


He solucionado este problema yo mismo, eliminando el archivo mongodb-27017.sock . Ejecuté el servicio después de eliminar este archivo, que funcionó bien. Sin embargo, todavía no estoy seguro de la causa raíz del problema. La salida del comando ls - lat /tmp/mongodb-27017.sock es ahora

srwx------ 1 mongodb nogroup 0 Apr 23 06:24 /tmp/mongodb-27017.sock


La causa más probable de esto fue que el proceso de mongod fue iniciado en algún momento por el usuario root. Por lo tanto, el archivo raíz (/tmp/mongodb-27017.sock) era propiedad del usuario root. El proceso mongod generalmente se ejecuta bajo su propio usuario dedicado, y ese usuario no tenía los permisos para eliminar ese archivo.

La solución, como ya descubrió, fue eliminarla. Entonces mongodb pudo recrearlo con los permisos correctos. Esto debería persistir después del reinicio, siempre que mongodb se inicie utilizando las secuencias de comandos de inicio o con la cuenta de usuario correcta.


Para los sistemas operativos basados ​​en UNIX, como alternativa a la respuesta proporcionada por Bastronaut, también puede especificar el archivo .sock que se guardará en una carpeta sobre la cual mongod tiene todos los derechos de usuario (correspondiente a la forma en que está ejecutando mongod), que way mongod también podrá eliminar el archivo .sock al apagarlo. La carpeta predeterminada en la que se guarda el archivo .sock es ''/ tmp''. Para especificar otra carpeta, use un archivo de configuración mongodb personalizado, por ejemplo ''mongodb.conf'', y agregue lo siguiente:

net: unixDomainSocket: pathPrefix: "anotherFolder"

Después de lo cual puedes ejecutar mongod con el comando:

$ mongod --config /path/to/mongodb.conf

Puede leer la documentación en: https://docs.mongodb.org/manual/reference/configuration-options/#net.unixDomainSocket.pathPrefix


$ sudo mongod

me resuelve el problema