2011-08-30 17 views
109

Mi host vino con una instancia de mongodb y no hay un directorio/db, así que ahora me pregunto qué puedo hacer para descubrir dónde se almacenan realmente los datos.¿Cómo puedo saber dónde está mongoDB almacenando datos? (no está en el valor predeterminado/data/db!)

+6

Hay una pregunta más reciente sobre esto que tiene una respuesta mejor: ["¿Cuál es la ruta de la base de datos predeterminada para mongodb?"] (Http://stackoverflow.com/questions/7247474/how -can-i-tell-where-mongodb-es-almacenando-datos-su-no-en-db). La ruta de datos será la predeterminada de '/ data/db' (si no se está utilizando ningún archivo de configuración) o se podrá detectar a través de' db.adminCommand ("getCmdLineOpts"). Parsed.dbpath'. – Stennie

+3

en OSX, mongo 3.0.4, tuve que usar "db.adminCommand (" getCmdLineOpts "). Parsed.storage.dbPath" –

+0

@Stennie su comentario me ayudó (estoy en Windows, así que estoy usando Robomongo), pero el enlace de su pregunta apunta a esta pregunta, no a su objetivo previsto - http://stackoverflow.com/a/12738557/112764 - y en 3.x, en realidad es 'db.adminCommand (" getCmdLineOpts "). parsed.storage.dbpath' – NateJ

Respuesta

108

mongod por defecto la ubicación de base de datos a /data/db/.

Si ejecuta ps -xa | grep mongod y no ver un --dbpath con esto le dice mongod mirar a ese parámetro para la ubicación db y no tener un dbpath en su mongodb.conf, entonces la ubicación por defecto será: /data/db/ y deberías mirar allí.

+8

No existe tal directorio – user2384994

+16

@ user2384994 la mina estaba ubicada en'/etc/mongod.conf' –

+0

No vi el camino, pero '/usr/bin/mongod -f/etc/mongod.conf'. Tomó el dbpatch desde la configuración. – Putnik

45

¿Qué dice su archivo de configuración?

$ grep dbpath /etc/mongodb.conf 

Si no es correcto, intente esto, los archivos de bases de datos estarán presentes en la lista:

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG 

Es /var/lib/mongodb/* en mi instalación predeterminada (Ubuntu 11.04).

Tenga en cuenta que también hay un archivo /var/lib/mongodb/mongod.lock sosteniendo mongod PID por conveniencia, sin embargo, se encuentra en el directorio de datos - lo que estamos buscando ...

+0

No/var/lib directorio en este servidor y esos dos comandos no funcionan (primero uno no puede encontrar /etc/mongodb.conf el segundo no reconocido lsof) – Zugwalt

+0

Tal vez debería agregar infos para su host. No parece ser una distribución como Ubuntu. – DrColossos

+1

En Ubuntu 16.04 mongodb v3.4.10, es '$ grep dbPath/etc/mongod.conf' – ihsan

1

Lo encontré solo hurgando en /var/db. Gracias por la ayuda, estoy seguro de que estas respuestas se aplican a otros sistemas (por ejemplo, Ubuntu) y ayudarán a otros.

22

En la versión más reciente de MongoDB v2.6.4 intento:

grep dbpath /etc/mongod.conf 

que le dará algo como esto:

dbpath=/var/lib/mongodb 

Y eso es donde se almacenan los datos.

+6

ahora el comando debe ser 'grep dbPath/etc/mongod.conf' – Pynchia

+0

El mío también estuvo aquí. Para las personas que querían encontrar este directorio para verificar el tamaño de los archivos: 'du -sh * | ordenar -hr' – JoeRocc

12

Desde mi experiencia, la ubicación predeterminada es /var/lib/mongodb después de hacer

sudo apt-get install -y mongodb-org 
+1

Puedo confirmar esto para los usuarios de Linux Mint 17.3. –

3

me encontré la mía aquí en un sistema OSX /usr/local/var/mongodb

+0

Esto es cierto para los usuarios de Homebrew – Matthew

3

Aunque esta pregunta está dirigida para Linux/Instancias de Unix de Mongo, es uno de los primeros resultados de búsqueda independientemente del sistema operativo utilizado, por lo que para futuros usuarios de Windows que lo encuentren:

Si MongoDB está configurado como un servicio de Windows en el valor predeterminado de manera, que por lo general puede encontrarlo mirando a la 'Ruta al ejecutable' entrada de propiedades del servicio MongoDB:

Properties Window showing 'Path to Executable' option

+0

No es tan obvio, pero las preguntas son para * nix os – st78

+1

@ st78 Lo sé, pero sigue siendo uno de los primeros resultados de Google al buscar la ubicación en Windows, por lo que dejé un Responde dirigiéndose a la ruta de Windows (una vez que lo descubrí) para las personas como yo que se tropiezan con ella. – Robotnik

0

Cuando se inicia hasta que se muestra. Pero no sé si es algo que puedes hacer o no en tu host.Si tiene acceso a la línea de comandos y puede reiniciar el servicio, obtendrá algo como:

2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten] 
MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 
1

En realidad, el directorio predeterminado en la instancia mongod almacena sus datos es

/data/db en Linux y OS X,

\data\db en Windows

Si instalado MongoDB usando un sistema de gestión de paquetes, comprobar el /etc/mongod.conf archivos proporcionados por sus paquetes para ver el directorio especificado.

La configuración storage.dbPath está disponible solo para mongod.

Los scripts de inicio del paquete Linux no esperan que storage.dbPath cambie de los valores predeterminados. Si usa los paquetes de Linux y cambia storage.dbPath, tendrá que usar sus propios scripts de inicio y deshabilitar los scripts integrados.

0

Si de alguna manera podría localizar mongod.log y hacer un grep sobre ella

grep dbpath mongod.log 

El valor para dbpath es la ubicación de los datos de mongodb !! Todo lo mejor :)

Cuestiones relacionadas