¿Cómo consigo que mongo use una unidad montada en ec2? Realmente no entiendo. ¿He adjuntado un volumen en ec2 formateado el disco como root e inicio como root y sin embargo como root no puedo acceder? Estoy corriendo en ubuntu 12.04. No hay otro mongo corriendo
Veo que Mongo creó un directorio 'db' en / data, es decir, / 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
A continuación se muestra si reinicio cuando elimino un archivo de bloqueo ...
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
, también en el directorio de datos.Respuestas:
Estaba teniendo el mismo problema en una instancia de Ubuntu ec2. Estaba siguiendo este artículo de Amazon en la página 7:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
La ruta de Mongodb en
/etc/mongodb.conf
se estableció en/var/lib/mongodb
(ubicación de instalación principal y en funcionamiento). Cuando cambié a/data/db
(volumen EBS) recibí 'errno: 13 Permiso denegado'.sudo service mongodb stop
.ls -la
ver a qué grupo y propietario se asignaba mongodb/var/lib/mongodb
(ruta existente) y cambié la/data/db
(nueva ruta) conchown
ychgrp
para que coincida. (ejemplo:sudo chown -R mongodb:mongodb /data/db
)etc/mongodb.conf
que/data/db
y sean eliminados los antiguos archivos mongo en el/var/lib/mongodb
directorio.sudo service mongodb start
y esperé alrededor de un minuto. Si intentas conectarte a 27017 de inmediato, no podrás hacerlo./data/db
(volumen EBS) y mongo deberían haber colocado un diario, mongod.lock, local.ns, local.0, etc. Si no es así, intentesudo service mongodb restart
verificar un minuto más tarde.Acabo de pasar más de una hora con esto. Probablemente no sea necesario cambiar el grupo y eliminar los archivos antiguos, pero eso fue lo que funcionó para mí.
Este es un gran video sobre cómo montar un volumen ebs en la instancia ec2:
http://www.youtube.com/watch?v=gBII3o3BofU
fuente
Yo uso este método para resolver el problema:
fuente
-R
opción y es perfecta :)id -u
/ data / db para los no iniciados. :)sudo chown $USER /data/db
lugar del comando original.id -U
o$USER
cosas. mongo tiene su propio usuario / grupo. puedes y debes codificar mongodb: mongodb. así que el comando es simplementesudo chown -R mognodb:mognodb /data/db
En mi caso (instancia de AWS EC2, Ubuntu) ayudó:
Y después de eso todo funcionó bien.
fuente
/data/db
aUSERNAME
Solo tiene que dar acceso a su
/data/db
carpeta.Escriba
sudo chown -R <USERNAME> /data/db
, reemplace<USERNAME>
por su nombre de usuario.Puede encontrar su nombre de usuario escribiendo
whoami
.fuente
Instalé mongodb con EBS en un EC2 con Ubuntu 14.04 siguiendo este tutorial:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
Pero en lugar del vestido sugerido que hice:
Para solucionar el problema
fuente
Tuve un problema similar, la razón real fue que ya había una sesión mongod ejecutándose desde mi intento anterior.
Yo corri
y todo lo demás funcionó como se esperaba.
killall
El comando enviaría una señal TERM a todos los procesos con un UID real. Entonces, esto mata todas las instancias en ejecución de mongod para que puedas comenzar la tuya.fuente
A partir de hoy, intenté abrirme paso para crear / abrir el archivo de bloqueo: /data/db/mongod.lock errno: 13 Permiso denegado ¿Ya se está ejecutando una instancia de mongod ? , finalizando , e intenté todas las respuestas publicadas anteriormente para resolver este problema, por lo tanto, nada funcionó agregando
A menos que agregue mi permiso de usuario actual a la ruta de ubicación por
Espero que esto ayude a alguien. También acabo de instalar Mongo DB en mi pi. ¡Salud!
fuente
Tuve un problema similar y seguí todas las instrucciones anteriores sobre el cambio de propietarios usando sudo chown, etc. Todavía tenía una instancia de mongodb ejecutándose en segundo plano después de los cambios. Corriendo
me mostró otras tareas usando mongo ejecutándose en segundo plano que no se cerraron correctamente. Luego ejecuté kill en todos los que se estaban ejecutando y luego pude iniciar mi servidor.
fuente
Para usuarios de mac:
Ejecute ls -ld / data / db /
Output debería ser algo así como drwrx-xr-x 20 singh wheel 680 21 jul 05:49 / data / db /
Donde singh es el propietario y wheel es el grupo al que pertenece .
Ejecute sudo chown -R singh: wheel / data / db
Run mongod
fuente
Eliminar el archivo mongodb.lock no fue el problema en mi caso. Lo hice y recibí un error acerca de que el puerto estaba en uso: [initandlisten] listen (): bind () falló errno: 98 Dirección ya en uso para el socket: 0.0.0.0:27017. Encontré otra solución aquí: no se puede iniciar el servidor local mongodb con instrucciones para matar el proceso:
Descubra en netstat qué proceso ejecuta el puerto mongodb (27017)
sudo netstat -tulpn | grep :27017
La salida será: tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412 / mongod
Mata el proceso apropiado.
sudo kill 1412
(reemplace 1412 con su ID de proceso que se encuentra en el paso 1)Y pude iniciar con éxito mongodb nuevamente. Creo que el mío seguía huyendo de un cierre inadecuado.
fuente
Para aquellos de ustedes que experimentan este error en Windows usando el Administrador de tareas, finalice la instancia de "mongod.exe" que se está ejecutando. Una vez hecho esto, elimine permanentemente el archivo mongo.lock y ejecute mongod.exe. Debería funcionar perfectamente después de eso.
fuente
Mi mongo (3.2.9) estaba instalado en Ubuntu, y mi archivo de registro tenía las siguientes líneas:
2016-09-28T11: 32: 07.822 + 0100 I CONTROL [initandlisten] dbexit: rc: 100
Entonces, el problema estaba en los permisos en la carpeta / var / lib / mongodb.
Lo solucioné, aunque me doy cuenta de que puede no ser demasiado seguro (es mi propio cuadro de desarrollo en mi caso), poco después del cambio, tanto db como la autenticación funcionaron.
fuente
En Mycase
En mongodb la versión 2.6.11 el directorio predeterminado de databse es
/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
fuente
Tuve el mismo problema cuando ejecuté el comando mongod después de instalarlo en Windows10. Detuve el servicio mongodb y lo comencé de nuevo. Trabajando como un encanto
Comando para detener el servicio mongodb (en windows):
net stop mongodb
Comando para iniciar el servidor mongodb:
mongod --dbpath PATH_TO_DATA_FOLDER
fuente
En una instancia de Fedora 18 con Mongo 2.2.4 pude evitar un error similar al desactivar SELinux llamando
setenforce 0
como root.Por cierto, este era un entorno corporativo, no una instancia de Amazon EC2, pero los síntomas eran similares.
fuente
En mi caso, el problema se resolvió eliminando el archivo de registro .
Aunque el mensaje de error se refiere específicamente al archivo de bloqueo :
fuente
Después de matar a mongod, tuve el mismo problema: no pude iniciar 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
Después de eliminar el bloqueo directamente, puedo reiniciar el proceso mongod.
fuente
Esto es lo que hice para solucionar el problema:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Cellar / mongodb / 3.0.7 / bin: $ PATH
$ sudo chown -R
id -u
/ data / dby luego comenzar mongo ...
$ mongod
fuente
Yo tuve el mismo problema.
Lo resolví cambiando el estado de selinux a permisivo con el siguiente comando:
fuente
Para
ls -la
conocer el usuario y el grupo de / var / log / mongodb. Entoncessudo chown -R user:group /data/db
ahora corresudo service mongodb start
. Verifique el estado consudo service mongodb status
fuente
En Windows, asegúrese de que la consola se inicie como administrador
fuente
Podrías intentar de esta manera. 1er.
pero a veces, esto no es útil. 2do. Si la forma anterior no es útil, puede intentar hacer esto:
o escriba:
para obtener la secuencia de salida
fuente
Para mí en CentOS 6.x:
sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart
Y he establecido una costumbre
db-path
en/etc/mongod.conf
.fuente
Si literalmente quiere una línea equivalente a los comandos en su pregunta original, puede usar un alias:
https://stackoverflow.com/a/11777141/7160782
fuente
En servidor Centos
esto funciona para mi
fuente
Obtuve un error similar, solucionado con la eliminación de todos los registros (en mi directorio
journals
y archivo de casosmongo.lock...
), después de ese puerto de verificación consudo lsof -i:27017
, si algo se está ejecutando en élkill <PID of the process>
, e intenta ejecutar de./mongod
nuevofuente
Reparar:
sudo mongod
Tuve el mismo problema, ejecutar mongod con privilegios de sudo lo solucionó. Viniendo de un entorno de Windows, solía
mongod
iniciar el demonio, bueno, parece que necesitamos los privilegios de superusuario para acceder a / data / db.También puede otorgar a los usuarios no root permisos de lectura y escritura para esa ruta. ¡Consulte las respuestas anteriores para obtener una guía!
fuente
Cada vez que cuando intentas iniciar mongod solo escribes
o si desea arreglar esto permanentemente, simplemente intente otorgarle permiso de rwx a la carpeta / data / db
fuente