我今天更新到了MacOS 10.15(Catalina)。当我mongod在终端中运行时,找不到/data/db目录:
? /Users/william > mongod
2019-10-08T17:02:44.183+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] MongoDB starting : pid=43162 port=27017 dbpath=/data/db 64-bit host=Williams-MacBook-Pro-6.local
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] db version v4.0.3
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] allocator: system
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] modules: none
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] build environment:
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] distarch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] options: {}
2019-10-08T17:02:44.211+0800 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] now exiting
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] shutting down with code:100
? /Users/william >
Run Code Online (Sandbox Code Playgroud)
我试图用安装MongoDB brew:
brew install mongodb
? /Users/william > brew install mongodb
Updating Homebrew...
Error: mongodb: unknown version :mountain_lion
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
kev*_*adi 56
这是主要错误:
initAndListen中的异常:NonExistentPath:找不到数据目录/ data / db。
Catalina发生了令人惊讶的更改:它不允许更改根目录(这也在论坛主题中进行了讨论):
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
Run Code Online (Sandbox Code Playgroud)
不幸的是,除了在Catalina功能中的简短提及之外,这在Apple的Catalina发行说明中并未明确说明:
macOS Catalina在专用的只读系统卷中运行
由于该目录/data/db被编码为MongoDB默认目录,因此一种解决方法是指定一个dbpath不在根目录上的目录。例如:
mongod --dbpath ~/data/db
Run Code Online (Sandbox Code Playgroud)
这会将MongoDB的数据放在您的主目录中。只要确保该路径~/data/db确实存在。
替代方法
一种替代方法是通过利用macOS上的在MacOS上安装MongoDB Community Edition中的说明进行操作brew:
brew tap mongodb/brew
brew install mongodb-community
Run Code Online (Sandbox Code Playgroud)
默认情况下,这将创建一些其他文件:
要运行,mongod您可以:
从命令行手动运行命令(为方便起见,可以使用别名):
mongod --config /usr/local/etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)使用来将MongoDB作为服务运行brew services。请注意,这会将MongoDB作为独立节点(而不是副本集)运行,因此取决于oplog的功能(例如changestream)将无法工作,除非您修改mongod配置文件:
brew services start mongodb-community
Run Code Online (Sandbox Code Playgroud)Mar*_*ijk 43
安装Catalina之后,您的桌面上可能会有一个名为的文件夹Relocated Items。您可以在data/db文件夹内找到该文件Security夹。
我所要做的只是移动Security/data/db,data/db然后将其放在我的主文件夹中。
您可以使用Finder应用程序或终端通过运行以下命令来执行此操作:
sudo mv /Users/Shared/Relocated\ Items/Security/data ~/
Run Code Online (Sandbox Code Playgroud)
在那之后运行:
mongod --dbpath ~/data/db
由您自己来创建别名
| 归档时间: |
|
| 查看次数: |
7462 次 |
| 最近记录: |