在 macOS 上安装 MongoDB 社区版
概述
使用本教程安装 MongoDB 8.0社区版在 macOS 上使用第三方Homebrew 软件包管理器。
从 MongoDB 4.4.1 版本开始,通过 Homebrew 安装 MongoDB 还会安装 MongoDB 数据库工具。有关更多信息,请参阅 使用 MongoDB 数据库工具。
MongoDB 版本
本教程安装 MongoDB 8.0 版本。社区版要安装不同版本的 MongoDB社区版,请使用页面左上角的版本下拉菜单选择该版本的文档。
考虑因素
平台支持
MongoDB 8.0 社区版支持 macOS 11 或更高版本。
更多信息,请参阅平台支持.
生产注意事项
在生产环境中部署 MongoDB 之前,请考虑阅读自管理部署的生产注意事项文档,该文档提供了性能考虑和建议配置。
安装 MongoDB 社区版
先决条件
确保您的系统满足以下所有先决条件。您只需要在系统上执行每个先决条件步骤一次。如果您已经将先决条件步骤作为使用 Homebrew 安装 MongoDB 的早期版本的一部分执行,则可以跳转到安装过程。
安装 Xcode 命令行工具
Homebrew 需要苹果 Xcode 的命令行工具。
在 macOS 终端中运行以下命令安装 Xcode 命令行工具
xcode-select --install
安装 Homebrew
macOS 默认不包含 Homebrew。brew
软件包。
使用官方的 Homebrew 安装说明 安装
brew
。
安装 MongoDB 8.0社区版版本
按照以下步骤安装 MongoDB社区版版本,使用 Homebrew 的 brew
包管理器。在继续之前,请确保您已遵循上面的 安装先决条件。
使用以下命令在您的 macOS 终端中下载 MongoDB 和数据库工具的官方 Homebrew 公式包: MongoDB Homebrew Tap
brew tap mongodb/brew 如果您已经为之前的 MongoDB 安装执行过此操作,则可以跳过此步骤。
更新 Homebrew 和所有现有公式
brew update 在 macOS 终端应用程序中运行以下命令安装 MongoDB
brew install mongodb-community@8.0
提示
或者,您还可以指定 MongoDB 的先前版本(如果需要)。您还可以以这种方式在旁边维护 MongoDB 的多个版本。
提示
如果您之前安装了旧版本的公式,可能会遇到ChecksumMismatchError错误。要解决此问题,请参阅ChecksumMismatchError故障排除。
安装包括以下二进制文件
此外,安装会在以下位置创建以下文件和目录,具体取决于您的Apple硬件
Intel处理器 | Apple硅处理器 | |
---|---|---|
/usr/local/etc/mongod.conf | /opt/homebrew/etc/mongod.conf | |
/usr/local/var/log/mongodb | /opt/homebrew/var/log/mongodb | |
/usr/local/var/mongodb | /opt/homebrew/var/mongodb |
有关Apple硬件当前列表的详细信息,请参阅Apple文档。您还可以运行以下命令来检查brew
安装了这些文件和目录的位置
brew --prefix
从MongoDB 4.4.1开始,安装还包括MongoDB数据库工具。有关更多信息,请参阅使用MongoDB数据库工具。
运行MongoDB社区版
按照以下步骤运行MongoDB社区版版本。这些说明假设您正在使用默认设置。
您可以使用 brew
将 MongoDB 作为 macOS 服务运行,或者您可以手动作为后台进程运行 MongoDB。建议将 MongoDB 作为 macOS 服务运行,因为这样做可以自动设置正确的系统 ulimit
值(有关更多信息,请参阅 ulimit 设置)。
要作为 macOS 服务运行 MongoDB(即
mongod
进程),请运行brew services start mongodb-community@8.0 要停止作为 macOS 服务运行的
mongod
,根据需要使用以下命令brew services stop mongodb-community@8.0 要使用配置文件手动作为后台进程运行
mongod
如果您的部署不使用 TLS 连接,请使用
--fork
选项对于运行在 Intel 处理器上的 macOS,请运行
mongod --config /usr/local/etc/mongod.conf --fork 对于运行在 Apple Silicon 处理器 上的 macOS,请运行
mongod --config /opt/homebrew/etc/mongod.conf --fork 如果您的部署使用 TLS 连接,请使用 GNU Screen。
对于运行在 Intel 处理器上的 macOS
要手动以后台进程方式运行
mongod
,在命令行中指定--dbpath
和--logpath
,请运行mongod --dbpath /path/to/dbdir --logpath /path/to/mongodb.log --fork 要停止以后台进程方式运行的
mongod
,使用 mongosh 连接到mongod
,并根据需要发出shutdown
命令。
这两种方法都使用在安装期间创建的 mongod.conf
文件。您也可以将您自己的 MongoDB 配置选项 添加到此文件中。
注意
macOS 阻止 mongod 打开
要验证 MongoDB 是否正在运行,请执行以下操作之一
如果您以 macOS 服务的方式启动了 MongoDB
brew services list 您应该看到服务
mongodb-community
列为已启动
。如果您以手动方式作为后台进程启动了 MongoDB
ps aux | grep -v grep | grep mongod 您应该在输出中看到您的
mongod
进程。
您还可以查看日志文件以查看您的 mongod
进程的当前状态:/usr/local/var/log/mongodb/mongo.log
。
连接和使用 MongoDB
要开始使用 MongoDB,请将 mongosh
连接到运行的实例。在新终端中,执行以下命令
mongosh
有关 CRUD(创建、读取、更新、删除)操作的信息,请参阅
使用 MongoDB 数据库工具
从 MongoDB 4.4.1 版本开始,通过 brew
安装 MongoDB 时也会安装 MongoDB 数据库工具。
MongoDB 数据库工具 是一组用于处理 MongoDB 部署的命令行实用程序,包括数据备份和导入/导出工具,如 mongoimport
和 mongodump
,以及监控工具如 mongotop
。
在您按照上述步骤安装了 MongoDB 服务器后,数据库工具将直接在您的 macOS 终端应用程序的命令行中可用。例如,您可以在 macOS 终端中运行 mongotop
以针对您的运行 MongoDB 实例,如下所示
mongotop
它应该启动,连接到您的运行中的 mongod
,并开始报告使用统计信息。
请参阅MongoDB 数据库工具文档以获取每个数据库工具的使用信息。
更多信息
默认绑定到本地主机
默认情况下,MongoDB 以 bindIp
设置为 127.0.0.1
启动,这绑定到本地主机网络接口。这意味着 mongod
只能接受在同一台机器上运行的客户端的连接。远程客户端将无法连接到 mongod
,并且如果此值未设置为有效的网络接口,则 mongod
将无法初始化 副本集。
此值可以通过以下方式配置
警告
在将您的实例绑定到公开可访问的 IP 地址之前,您必须保护您的集群免受未经授权的访问。有关安全建议的完整列表,请参阅 自管理部署的安全清单。至少,请考虑 启用身份验证 和 强化网络基础设施。
有关配置 bindIp
的更多信息,请参阅 自管理部署中的 IP 绑定。
故障排除:ChecksumMismatchError
如果您之前安装过该公式的旧版本,您可能会遇到类似于以下内容的 ChecksumMismatchError
错误
Error: An exception occurred within a child process: ChecksumMismatchError: SHA256 mismatch Expected: c7214ee7bda3cf9566e8776a8978706d9827c1b09017e17b66a5a4e0c0731e1f Actual: 6aa2e0c348e8abeec7931dced1f85d4bb161ef209c6af317fe530ea11bbac8f0 Archive: /Users/kay/Library/Caches/Homebrew/downloads/a6696157a9852f392ec6323b4bb697b86312f0c345d390111bd51bb1cbd7e219--mongodb-macos-x86_64-4.2.0.tgz To retry an incomplete download, remove the file above.
修复方法
删除下载的
.tgz
归档。重新点击公式。
brew untap mongodb/brew && brew tap mongodb/brew 重试安装。
brew install mongodb-community@8.0