我如何知道mongoDB存储数据的位置?(它不在默认的/data/db中!)
我的主机附带了一个mongodb实例,并且没有/db目录,所以现在我想知道我能做些什么来找出数据实际存储的位置。您的配置文件怎么说我如何知道mongoDB存储数据的位置?(它不在默认的/data/db中!),mongodb,directory,database,Mongodb,Directory,Database,我的主机附带了一个mongodb实例,并且没有/db目录,所以现在我想知道我能做些什么来找出数据实际存储的位置。您的配置文件怎么说 $ grep dbpath /etc/mongodb.conf 如果不正确,请尝试此操作,您的数据库文件将出现在列表中: $ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG 在我的默认安装(Ubuntu 11.04)中是/var/lib
$ grep dbpath /etc/mongodb.conf
如果不正确,请尝试此操作,您的数据库文件将出现在列表中:
$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG
在我的默认安装(Ubuntu 11.04)中是/var/lib/mongodb/*
请注意,为了方便起见,还有一个
/var/lib/mongodb/mongod.lock
文件保存mongod
PID,但是它位于数据目录中,我们正在查找该目录…mongod
默认数据库位置为/data/db/
如果运行
ps-xa | grep mongod
,但没有看到一个--dbpath
,它明确告诉mongod
查看数据库位置的参数,而mongodb.conf
中没有dbpath
,然后默认位置将是:/data/db/
,您应该在那里查找。只需在/var/db
中拨动一下就可以找到它。谢谢你的帮助——我相信这些答案适用于其他系统(如Ubuntu),也会帮助其他系统 在较新版本的mongodb v2.6.4中,请尝试:
grep dbpath /etc/mongod.conf
它会给你这样的东西:
dbpath=/var/lib/mongodb
这就是它存储数据的地方。根据我的经验,默认位置是
/var/lib/mongodb
sudo apt-get install -y mongodb-org
我在OSX系统上找到了我的
/usr/local/var/mongodb虽然此问题针对的是Mongo的Linux/Unix实例,但无论使用何种操作系统,它都是最早的搜索结果之一,因此对于找到此问题的未来Windows用户: 如果以默认方式将MongoDB设置为Windows服务,您通常可以通过查看MongoDB服务属性中的“可执行文件路径”条目找到它:
当您启动它时,它会显示您。但我不知道你是否可以在你的主机上做些什么。如果您有权访问命令行并可以重新启动服务,您将得到如下结果:
2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten]
MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\
实际上,mongod实例存储其数据的默认目录是
/data/db
在Linux和OS X上
Windows上的\data\db
要进行检查,可以在中查找dbPath设置
- 在Linux上,如果您使用包管理器安装MongoDB,则位置为
。 运行以下命令以检查指定的目录:/etc/mongod.conf
grep dbpath /etc/mongodb.conf
- 在Windows上,位置是
。打开mongod.cfg文件并检查dbPath选项/bin/mongod.cfg
- 在macOS上,从MongoDB的官方自制水龙头安装时,位置是
/usr/local/etc/mongod.conf
package manager安装附带的默认mongod.conf配置文件使用以下特定于平台的默认值: 配置文件中的设置仅适用于 Linux包初始化脚本不希望
storage.dbPath
更改默认值。如果使用Linux软件包并更改storage.dbPath
,则必须使用自己的init脚本并禁用内置脚本
如果您能找到mongod.log,并对其进行grep
grep dbpath mongod.log
dbpath的值是mongodb的数据位置!!
祝您一切顺利:)如果您可以连接到服务器,我发现
db.serverCmdLineOpts()
是查找实际路径的最可靠的方法。“parsed.storage.dbPath”包含服务器当前使用的路径,并且在从配置或命令行参数获取该路径时都可用
同样在我的例子中,确保配置值反映实际值(即配置在上次重启后没有改变)也很重要,这里提供的解决方案不能保证这一点
db.serverCmdLineOpts()
示例输出:
{
"argv" : [
// --
],
"parsed" : {
"config" : "/your-config",
"storage" : {
"dbPath" : "/your/actual/db/path",
// --
}
},
"ok" : 1.0
}
对于windows,进入MongoDB\Server\4.0\bin文件夹并在任何文本编辑器中打开mongod.cfg文件。然后找到指定dbPath参数的行。这条线看起来很像 数据库路径:D:\Program Files\MongoDB\Server\4.0\data
在MongoDB 4.4+和CentOS 8上,我通过运行以下命令找到了路径:
grep dbPath /etc/mongod.conf
此服务器上没有/var/lib目录,并且这两个命令不起作用(第一个命令找不到/etc/mongodb.conf,第二个命令无法识别lsof),也许您应该为主机添加信息。看起来不像是一个类似Ubuntu的发行版。在Ubuntu 16.04 mongodb v3.4.10上,它是
$grep dbPath/etc/mongod.conf
最近有一个关于这个问题的问题有一个更好的答案:。数据路径要么是默认的/data/db
(如果没有使用配置文件),要么可以通过db.adminCommand(“getCmdLineOpts”).parsed.dbpath
发现。在OSX上,mongo 3.0.4,我不得不使用“db.adminCommand(“getCmdLineOpts”).parsed.storage.dbpath@Stennie您的评论帮助了我(我在Windows上,所以我使用的是Robomongo),但是您的问题链接指向这个问题,而不是您预期的目标--3.x中,它实际上是db.adminCommand(“getCmdLineOpts”).parsed.storage.dbpath
@NateJ谢谢!MongoDB 2.6+的示例以及@user2384994 mine中较旧的表单位于/etc/mongod.conf
没有看到路径,但是/usr/bin/mongod-f/etc/mongod.conf
。从config.Check/usr/local/etc/mongod.conf
(配置文件)和/usr/local/var/mongodb
(数据库位置)获取dbpatch。在某些系统上,这些将是默认值。这个应该精确打印所有mongodb版本的当前路径,即db.serverCmdLineOpts()
我的也在这里。对于希望查找此目录以检查文件大小的人:du-sh*| sort-hr
我可以为LinuxMint17.3用户确认这一点。不是这样的
grep dbPath /etc/mongod.conf