这是主要错误:
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