這是主要錯誤:
initAndListen中的異常:NonExistentPath:找不到數據目錄/ data / db
。
最新版的Mac系統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