¿Cómo puedo saber dónde está almacenando datos mongoDB? (¡no está en el valor predeterminado / data / db!)
160
Mi host vino con una instancia de mongodb y no hay un directorio / db, así que ahora me pregunto qué puedo hacer para averiguar dónde se almacenan realmente los datos.
Hay una pregunta más reciente sobre esto que tiene una mejor respuesta: "¿Cuál es la ruta de base de datos predeterminada para mongodb?" . La ruta de datos será la predeterminada /data/db(si no se utiliza ningún archivo de configuración) o se podrá descubrir a través de db.adminCommand("getCmdLineOpts").parsed.dbpath.
Stennie
66
en OSX, mongo 3.0.4, tuve que usar "db.adminCommand (" getCmdLineOpts "). parsed.storage.dbPath"
ski_squaw
@Stennie, su comentario me ayudó (estoy en Windows, así que estoy usando Robomongo), pero su enlace de preguntas apunta a esta pregunta, no a su objetivo previsto - stackoverflow.com/a/12738557/112764 - y en 3.x, es en realidaddb.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ
55
@NateJ ¡Gracias! La respuesta a la pregunta relacionada tiene ejemplos para MongoDB 2.6+, así como la forma anterior en <= 2.4. También hay un asistente de shell que puede usar en lugar de recordar cambiar a la adminbase de datos o usar adminCommand: db.serverCmdLineOpts().parsed.storage.dbPath(MongoDB 2.6+).
Stennie
Respuestas:
140
mongodel valor predeterminado es la ubicación de la base de datos /data/db/.
Si ejecuta ps -xa | grep mongody no ve uno --dbpathque explícitamente le dice mongodque busque ese parámetro para la ubicación de base de datos y no tiene un dbpathen su mongodb.conf, entonces la ubicación predeterminada será: /data/db/y debe buscar allí.
@ user2384994 la mina estaba ubicada en/etc/mongod.conf
K - La toxicidad en SO está creciendo.
1
No vi el camino, pero /usr/bin/mongod -f /etc/mongod.conf. Tomó el dbpatch de la configuración.
Putnik
66
Verifique /usr/local/etc/mongod.conf(archivo de configuración) y /usr/local/var/mongodb(ubicación de la base de datos) también. En algunos sistemas, estos serán los valores predeterminados.
Está /var/lib/mongodb/*en mi instalación predeterminada (Ubuntu 11.04).
Tenga en cuenta que también hay un /var/lib/mongodb/mongod.lockarchivo que contiene mongodPID por conveniencia, sin embargo, se encuentra en el directorio de datos, que estamos buscando ...
No hay directorio / var / lib en este servidor y esos dos comandos no funcionan (el primero no puede encontrar /etc/mongodb.conf, el segundo no reconocido lsof)
Zugwalt
Tal vez deberías agregar información para tu anfitrión. No parece ser una distribución como Ubuntu.
DrColossos
44
En Ubuntu 16.04 mongodb v3.4.10, es$ grep dbPath /etc/mongod.conf
ihsan
31
En la versión más reciente de mongodb v2.6.4 intente:
La mía también estaba aquí. Para las personas que querían encontrar este directorio para verificar los tamaños de archivo:du -sh * | sort -hr
25
Encuentro db.serverCmdLineOpts()la forma más sólida de encontrar la ruta real si puede conectarse al servidor. El "parsed.storage.dbPath" contiene la ruta que su servidor está usando actualmente y está disponible cuando se toma de la configuración o de los argumentos de la línea de comandos.
También en mi caso fue importante asegurarme de que el valor de configuración refleja el valor real (es decir, la configuración no cambió después del último reinicio), lo que no está garantizado por las soluciones que se ofrecen aquí.
Si bien esta pregunta está dirigida a instancias de Mongo en Linux / Unix, es uno de los primeros resultados de búsqueda independientemente del sistema operativo utilizado, por lo que para los futuros usuarios de Windows que encuentren esto:
Si MongoDB está configurado como un Servicio de Windows de la manera predeterminada, generalmente puede encontrarlo mirando la entrada 'Ruta al ejecutable' en las Propiedades del Servicio MongoDB:
No es tan obvio, pero las preguntas son para * nix os
st78
3
@ st78 Lo sé, pero sigue siendo uno de los primeros resultados de Google al buscar la ubicación en Windows, por lo que dejé una respuesta que aborda la ruta de Windows (una vez que lo descubrí) para las personas como yo que se topan con ella.
Robotnik
15
Desde mi experiencia, la ubicación predeterminada es /var/lib/mongodbdespués de que lo hago
La pregunta es "¿Cómo puedo encontrar" la ubicación de almacenamiento de datos mongodb. no solo el camino para un usuario o plataforma específicos.
Yu Chen
4
Para Windows Vaya dentro de la carpeta MongoDB \ Server \ 4.0 \ bin y abra el archivo mongod.cfg en cualquier editor de texto. Luego ubique la línea que especifica el parámetro dbPath. La línea se ve algo similar
dbPath: D: \ Archivos de programa \ MongoDB \ Server \ 4.0 \ data
Lo encontré solo hurgando /var/db. Sin embargo, gracias por la ayuda. Estoy seguro de que estas respuestas se aplican a otros sistemas (por ejemplo, Ubuntu) y ayudarán a otros.
En realidad, el directorio predeterminado donde la instancia de mongod almacena sus datos es
/data/db en Linux y OS X,
\data\db en Windows
Si instaló MongoDB usando un sistema de administración de paquetes , verifique el /etc/mongod.confarchivo provisto por sus paquetes para ver el directorio especificado.
La storage.dbPathconfiguración solo está disponible para mongod.
Los scripts de inicio del paquete de Linux no esperan storage.dbPathcambiar 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.
Cuando lo enciendes te muestra. Pero no sé si es algo que puedes hacer o no en tu host. Si tiene acceso a la línea de comando 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\
/data/db
(si no se utiliza ningún archivo de configuración) o se podrá descubrir a través dedb.adminCommand("getCmdLineOpts").parsed.dbpath
.db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
admin
base de datos o usaradminCommand
:db.serverCmdLineOpts().parsed.storage.dbPath
(MongoDB 2.6+).Respuestas:
mongod
el valor predeterminado es la ubicación de la base de datos/data/db/
.Si ejecuta
ps -xa | grep mongod
y no ve uno--dbpath
que explícitamente le dicemongod
que busque ese parámetro para la ubicación de base de datos y no tiene undbpath
en sumongodb.conf
, entonces la ubicación predeterminada será:/data/db/
y debe buscar allí.fuente
/etc/mongod.conf
/usr/bin/mongod -f /etc/mongod.conf
. Tomó el dbpatch de la configuración./usr/local/etc/mongod.conf
(archivo de configuración) y/usr/local/var/mongodb
(ubicación de la base de datos) también. En algunos sistemas, estos serán los valores predeterminados.¿Qué dice tu archivo de configuración?
Si no es correcto, intente esto, sus archivos de base de datos estarán presentes en la lista:
Está
/var/lib/mongodb/*
en mi instalación predeterminada (Ubuntu 11.04).Tenga en cuenta que también hay un
/var/lib/mongodb/mongod.lock
archivo que contienemongod
PID por conveniencia, sin embargo, se encuentra en el directorio de datos, que estamos buscando ...fuente
$ grep dbPath /etc/mongod.conf
En la versión más reciente de mongodb v2.6.4 intente:
Te dará algo como esto:
Y ahí es donde almacena los datos.
fuente
du -sh * | sort -hr
Encuentro
db.serverCmdLineOpts()
la forma más sólida de encontrar la ruta real si puede conectarse al servidor. El "parsed.storage.dbPath" contiene la ruta que su servidor está usando actualmente y está disponible cuando se toma de la configuración o de los argumentos de la línea de comandos.También en mi caso fue importante asegurarme de que el valor de configuración refleja el valor real (es decir, la configuración no cambió después del último reinicio), lo que no está garantizado por las soluciones que se ofrecen aquí.
Salida de ejemplo:
fuente
Si bien esta pregunta está dirigida a instancias de Mongo en Linux / Unix, es uno de los primeros resultados de búsqueda independientemente del sistema operativo utilizado, por lo que para los futuros usuarios de Windows que encuentren esto:
Si MongoDB está configurado como un Servicio de Windows de la manera predeterminada, generalmente puede encontrarlo mirando la entrada 'Ruta al ejecutable' en las Propiedades del Servicio MongoDB:
fuente
Desde mi experiencia, la ubicación predeterminada es
/var/lib/mongodb
después de que lo hagofuente
Encontré el mío aquí en un sistema OSX / usr / local / var / mongodb
fuente
Para Windows Vaya dentro de la carpeta MongoDB \ Server \ 4.0 \ bin y abra el archivo mongod.cfg en cualquier editor de texto. Luego ubique la línea que especifica el parámetro dbPath. La línea se ve algo similar
fuente
Lo encontré solo hurgando
/var/db
. Sin embargo, gracias por la ayuda. Estoy seguro de que estas respuestas se aplican a otros sistemas (por ejemplo, Ubuntu) y ayudarán a otros.fuente
Si de alguna manera pudieras localizar mongod.log y hacer un grep sobre él
¡El valor para dbpath es la ubicación de datos para mongodb! Todo lo mejor :)
fuente
En realidad, el directorio predeterminado donde la instancia de mongod almacena sus datos es
/data/db
en Linux y OS X,\data\db
en WindowsSi instaló MongoDB usando un sistema de administración de paquetes , verifique el
/etc/mongod.conf
archivo provisto por sus paquetes para ver el directorio especificado.La
storage.dbPath
configuración solo está disponible paramongod
.Los scripts de inicio del paquete de Linux no esperan
storage.dbPath
cambiar de los valores predeterminados. Si usa los paquetes de Linux y cambiastorage.dbPath
, tendrá que usar sus propios scripts de inicio y deshabilitar los scripts integrados.fuente
Cuando lo enciendes te muestra. Pero no sé si es algo que puedes hacer o no en tu host. Si tiene acceso a la línea de comando y puede reiniciar el servicio, obtendrá algo como:
fuente