My host came with a mongodb instance and there is no /db directory so now I am wondering what I can do to find out where the data is actually being stored.
asked Aug 30, 2011 at 17:44
Aaron SilvermanAaron Silverman
21.4k21 gold badges79 silver badges102 bronze badges
4
mongod
defaults the database location to /data/db/
.
If you run ps -xa | grep mongod
and you don't see a --dbpath
which explicitly tells mongod
to look at that parameter for the db location and you don't have a dbpath
in your mongodb.conf
, then the default location will
be: /data/db/
and you should look there.
erip
15.8k10 gold badges63 silver badges118 bronze badges
answered Sep 2, 2011 at 18:00
6
What does your configuration file say?
$ grep dbpath /etc/mongodb.conf
If it is not correct, try this, your database files will be present on the list:
$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG
It's /var/lib/mongodb/*
on my default installation [Ubuntu 11.04].
Note that there is also a /var/lib/mongodb/mongod.lock
file holding mongod
PID for convenience,
however it is located in the data directory - which we are looking for...
answered Aug 30, 2011 at 17:53
Tomasz NurkiewiczTomasz Nurkiewicz
328k68 gold badges691 silver badges667 bronze badges
3
I find db.serverCmdLineOpts[]
the most robust way to find actual path if you can connect to the server. The "parsed.storage.dbPath" contains the path your server is currently using and is available both when it's taken from the config or from the command line arguments.
Also in my case it was important to make sure that the config value reflects the actual value [i.e. config didn't change after the last restart], which isn't guaranteed by the solutions offered here.
db.serverCmdLineOpts[]
Example output:
{
"argv" : [
// --
],
"parsed" : {
"config" : "/your-config",
"storage" : {
"dbPath" : "/your/actual/db/path",
// --
}
},
"ok" : 1.0
}
answered Aug 27, 2018 at 9:15
glock18glock18
6205 silver badges11 bronze badges
2
In the newer version of mongodb v2.6.4 try:
grep dbpath /etc/mongod.conf
It will give you something like this:
dbpath=/var/lib/mongodb
And that is where it stores the data.
answered Aug 28, 2014 at 10:19
Tim TrustonTim Truston
4,1306 gold badges46 silver badges59 bronze badges
1
While this question asks about Linux/Unix instances of Mongo, it's one of the first search results regardless of the operating system used, so for future Windows users that find this:
If MongoDB is set up as a Windows Service in the default manner, you can usually find it by looking at the 'Path to executable' entry in the MongoDB Service's Properties:
answered Sep 23, 2016 at 2:34
RobotnikRobotnik
3,4962 gold badges31 silver badges47 bronze badges
2
From my experience the default location is /var/lib/mongodb
after I do
sudo apt-get install -y mongodb-org
lrineau
5,7683 gold badges33 silver badges46 bronze badges
answered Jan 6, 2015 at 16:49
zillabunnyzillabunny
3353 silver badges10 bronze badges
1
Actually, the default directory where the mongod instance stores its data is
/data/db
on Linux and OS X,
\data\db
on Windows
To check the same, you can look for dbPath settings in mongodb configuration file.
- On Linux, the location is
/etc/mongod.conf
, if you have used package manager to install MongoDB. Run the following command to check the specified directory:grep dbpath /etc/mongodb.conf
- On Windows, the location is
/bin/mongod.cfg
. Open mongod.cfg file and check for dbPath option. - On macOS, the location is
/usr/local/etc/mongod.conf
when installing from MongoDB’s official Homebrew tap.
The default mongod.conf configuration file included with package manager installations uses the following platform-specific default values for storage.dbPath
:
+--------------------------+-----------------+------------------------+
| Platform | Package Manager | Default storage.dbPath |
+--------------------------+-----------------+------------------------+
| RHEL / CentOS and Amazon | yum | /var/lib/mongo |
| SUSE | zypper | /var/lib/mongo |
| Ubuntu and Debian | apt | /var/lib/mongodb |
| macOS | brew | /usr/local/var/mongodb |
+--------------------------+-----------------+------------------------+
The storage.dbPath
setting in the configuration file is available only for mongod
.
The Linux package init scripts do not expect storage.dbPath
to change from the defaults. If you use the Linux packages and change storage.dbPath
, you will have to use your own init
scripts and disable the built-in scripts.
Source
answered Feb 10, 2017 at 14:35
1
I found mine here on a OSX system /usr/local/var/mongodb
answered Jun 18, 2016 at 11:38
2
For windows Go inside MongoDB\Server\4.0\bin folder and open mongod.cfg file in any text editor. Then locate the line that specifies the dbPath param. The line looks something similar
dbPath: D:\Program Files\MongoDB\Server\4.0\data
answered Jan 22, 2019 at 9:28
Found it just by poking around in /var/db
. Thanks for the help though--I am sure these answers apply to other systems [e.g. Ubuntu] and will help others!
answered Sep 5, 2011 at 20:26
Aaron SilvermanAaron Silverman
21.4k21 gold badges79 silver badges102 bronze badges
If you could somehow locate mongod.log and the do a grep over it
grep dbpath mongod.log
The value for dbpath is the data location for mongodb!! All the best :]
answered Sep 7, 2017 at 12:35
NilotpalNilotpal
2,8934 gold badges30 silver badges46 bronze badges
On MongoDB 4.4+ and on CentOS 8, I found the path by running:
grep dbPath /etc/mongod.conf
answered Dec 30, 2020 at 0:36
jjjjjj
2,4644 gold badges33 silver badges57 bronze badges
When you start it up it shows you. But I don't know if it is something you can do or not on your host. If you have access to the command line and can restart the service, you will get something like:
2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten]
MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\
answered Nov 15, 2016 at 17:59
johnnyjohnny
19k49 gold badges152 silver badges254 bronze badges