【问题标题】:Installing and Running MongoDB - Many Errors on Mac安装和运行 MongoDB - Mac 上的许多错误
【发布时间】:2020-02-10 01:50:53
【问题描述】:

我正在尝试在我的 Mac 上安装 mongoDB。但是,我遇到了很多问题。

我首先使用 Homebrew 通过运行以下命令安装了 mongoDB:

brew tap mongodb/brew

brew install mongodb-community@4.2

然后使用:

brew services start mongodb-community@4.2

此时一切看起来都很好,直到我尝试在终端中运行:

mongod

一开始我以为问题是我没有创建 /data/db 文件夹,所以我跑了:

sudo mkdir -p /data/db

这不起作用。

然后我找到一篇文章说Mac用户需要运行:

sudo mkdir -p /System/Volumes/Data/data/db

这行得通..然后我跑了:

mongod --dbpath /System/Volumes/Data/data/db

并收到以下信息:

2020-02-09T20:36:07.667-0500 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] MongoDB starting : pid=65406 port=27017 dbpath=/System/Volumes/Data/data/db 64-bit host=user-MacBook-Pro.local
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] db version v4.2.3
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] git version: 6874650b362138df74be53d366bbefc321ea32d4
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] allocator: system
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] modules: none
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] build environment:
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten]     distarch: x86_64
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten]     target_arch: x86_64
2020-02-09T20:36:07.672-0500 I  CONTROL  [initandlisten] options: { storage: { dbPath: "/System/Volumes/Data/data/db" } }
2020-02-09T20:36:07.673-0500 E  STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use
2020-02-09T20:36:07.673-0500 I  CONTROL  [initandlisten] now exiting
2020-02-09T20:36:07.673-0500 I  CONTROL  [initandlisten] shutting down with code:48

我试过跑步:

sudo chown -Rv user /System/Volumes/Data/data/db

mongod

然后收到如下:

2020-02-09T20:36:52.247-0500 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] MongoDB starting : pid=65410 port=27017 dbpath=/data/db 64-bit host=user-MacBook-Pro.local
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] db version v4.2.3
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] git version: 6874650b362138df74be53d366bbefc321ea32d4
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] allocator: system
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] modules: none
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] build environment:
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten]     distarch: x86_64
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten]     target_arch: x86_64
2020-02-09T20:36:52.249-0500 I  CONTROL  [initandlisten] options: {}
2020-02-09T20:36:52.250-0500 E  STORAGE  [initandlisten] Failed to set up listener: SocketException: Address already in use
2020-02-09T20:36:52.250-0500 I  CONTROL  [initandlisten] now exiting
2020-02-09T20:36:52.250-0500 I  CONTROL  [initandlisten] shutting down with code:48

对于 SocketException,我试过了:

mongod --port 27018

并收到:

2020-02-09T20:37:39.191-0500 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] MongoDB starting : pid=65414 port=27018 dbpath=/data/db 64-bit host=user-MacBook-Pro.local
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] db version v4.2.3
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] git version: 6874650b362138df74be53d366bbefc321ea32d4
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] allocator: system
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] modules: none
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] build environment:
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten]     distarch: x86_64
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten]     target_arch: x86_64
2020-02-09T20:37:39.195-0500 I  CONTROL  [initandlisten] options: { net: { port: 27018 } }
2020-02-09T20:37:39.196-0500 I  STORAGE  [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2020-02-09T20:37:39.196-0500 I  NETWORK  [initandlisten] shutdown: going to close listening sockets...
2020-02-09T20:37:39.196-0500 I  -        [initandlisten] Stopping further Flow Control ticket acquisitions.
2020-02-09T20:37:39.196-0500 I  CONTROL  [initandlisten] now exiting
2020-02-09T20:37:39.196-0500 I  CONTROL  [initandlisten] shutting down with code:100

我似乎无法弄清楚发生了什么,因为我只是按照我在 StackOverflow 上从其他人那里找到的所有步骤来解决这个问题。

【问题讨论】:

  • 我对自制软件不熟悉。我认为您正在尝试很多事情,有些正在起作用,有些不起作用(尚不清楚什么是什么不是)。 MongoDB 数据库需要一次成功安装一次成功启动。一旦成功启动,就可以使用 Mongo Shell 或 MongoDB Compass 等工具访问。这里是general instructions on installing. starting and accessing MOngoDB on MacOS
  • 也不熟悉 brew 但听起来好像一旦你运行brew services start 它就已经启动了'mongod',这就是为什么当再次尝试运行它时它会显示“地址已在使用中”。而是使用默认地址的“mongo”或指南针连接到已经运行的实例。在终端中尝试运行“mongo”,它应该可以连接。

标签: mongodb macos homebrew


【解决方案1】:

在做了一些研究并查看了上面的 cmets 之后,似乎在通过 homebrew 安装 MongoDB 时,您将使用以下命令:

brew services start mongodb-community

然后在新标签页中:

mongo

这将成功启动mongo。我仍然不能 100% 确定为什么 mongod 会退回错误,但据我所知,上述方法有效。

【讨论】:

  • mongod 回退错误,因为它已经以 brew services ... 开头。它在日志中显示:Failed to set up listener: SocketException: Address already in use.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2016-01-27
相关资源
最近更新 更多