Mac启动MongoDB报错:exception in initAndListen: NonExistentPath: Data directory /data/db not found., term

这是主要错误:

initAndListen中的异常:NonExistentPath:找不到数据目录/ data / db

Catalina发生了令人惊讶的更改:它不允许更改根目录(这也在论坛主题中进行了讨论):

% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system

不幸的是,除了在Catalina功能中简短提及之外,这在Apple的Catalina发行说明中没有明确说明:

macOS Catalina在专用的只读系统卷中运行

由于该目录/data/db被编码为MongoDB默认目录,因此一种解决方法是指定一个dbpath不在根目录上的目录。例如:

mongod --dbpath ~/data/db

这会将MongoDB的数据放在您的主目录中。只要确保该路径~/data/db确实存在。

替代方法

一种替代方法是通过利用macOS上的在macOS上安装MongoDB社区版中的说明进行操作brew

brew tap mongodb/brew
brew install mongodb-community

默认情况下,这将创建一些其他文件:

  • 配置文件(/usr/local/etc/mongod.conf)
  • 日志目录路径(/ usr / local / var / log / mongodb)
  • 数据目录路径(/ usr / local / var / mongodb)
    要运行,mongod您可以:
  • 从命令行手动运行命令(为方便起见,可以使用别名):
mongod --config /usr/local/etc/mongod.conf
  • 使用来将MongoDB作为服务运行brew services。请注意,这会将MongoDB作为独立节点(而不是副本集)运行,因此取决于oplog的功能(例如changestream)将无法工作,除非您修改mongod配置文件:
brew services start mongodb-community

参考博客:https://*.com/questions/58283257/mongodb-cant-find-data-directory-after-upgrading-to-mac-os-10-15-catalina

上一篇:mongodb的安装


下一篇:【重学Node.js 第1&2篇】本地搭建Node环境并起RESTful Api服务