gpt4 book ai didi

macos - 如何更改 mongodb 的默认位置?

转载 作者:可可西里 更新时间:2023-11-01 09:23:10 27 4
gpt4 key购买 nike

我使用 brew 在 Yosemite 上安装了 MongoDB。我知道默认存储位置是/data/db。我想将其更改为位置/Volumes/Data/mongodb,这样当我运行“mongod”时,它将默认选择/Volumes/Data/mongodb 中的数据库。我尝试编辑 mongod.conf 文件,我有

storage:
dbPath: /Volumes/Data/mongodb

但是,每当我运行“mongod”时,它都会给我消息:

 ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo

如果我给 mongod 一个 --dbpath 参数,它工作正常,但我希望它默认工作。为什么我的 mongod.conf 文件似乎没有被遵守。在谷歌上搜索,似乎 conf 文件安装在不同的位置,具体取决于操作系统和安装方法。运行 db.serverCmdLineOpts() 给出:

{
"argv" : [
"/usr/local/opt/mongodb/bin/mongod",
"--config",
"/usr/local/etc/mongod.conf"
],
"parsed" : {
"config" : "/usr/local/etc/mongod.conf",
"net" : {
"bindIp" : "127.0.0.1"
},
"storage" : {
"dbPath" : "/Volumes/Data/mongodb"
},
"systemLog" : {
"destination" : "file",
"logAppend" : true,
"path" : "/usr/local/var/log/mongodb/mongo.log"
}
},
"ok" : 1
}

最佳答案

注意事项

  1. 路径必须存在。它不会自动创建。
  2. /Volumes 是一种用于安装驱动器和 bundle 的保留目录,不应直接使用。
  3. 如果您使用卷或(稀疏)包,您需要确保它已在启动时安装,或者您必须在启动 MongoDB 之前手动安装。

基本上,在 OS X 中有两个地方可以放置 MongoDB 数据。遗憾的是,brew 和 MacPorts 都不遵守文件层次结构标准*,而 BSD 也采用了该标准,而 BSD 是 OS X 的基础。

解决方案 1:您希望所有 OS X 用户都可以访问数据

因为 mongod 是从 /usr/local 子树运行的,所以这是我们的父节点。但是由于变量数据属于 /var 我们需要在那里使用本地树。所以我们的数据基本路径是 /var/local/lib。它是 mongoldb 数据,因此您可以将其放入 mongo(因为包基名)或 mongodb(因为供应商名称)甚至 mongod(因为守护程序名称)。这基本上是一个品味问题,但我会坚持供应商。所以你的 dbpath 将是 /var/local/lib/mongodb

解决方案 2:只有您可以访问数据

将数据放入您的主目录。

好吧,基本上你可以在那里做你想做的事,但通常我会将数据放入一个隐藏目录(以点为前缀),这样它就不会弄乱你的 Finder。像 $HOME/.mongodb

这样的东西

这个解决方案并不是很干净,因为软件将从公共(public)子树运行并且数据存储在用户目录中。

两种解决方案的扩展

如果您想将数据放入卷或(稀疏)包中,只需创建从正确位置到卷的符号链接(symbolic link),只需创建符号链接(symbolic link)而不是创建目录。解决方案 1 的示例:

sudo ln -s /Volumes/YourVolume /var/local/lib/mongodb

* 好吧,这是因为 MacPorts 安装在/opt 下,所以它在技术上确实如此(尽管恕我直言,它宁愿首先属于/usr/local)

关于macos - 如何更改 mongodb 的默认位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26520883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com