掌控数据力量:MongoDB 下载与安装教学全攻略
在当今这个数据爆炸的时代,选择一个高效、灵活且可扩展的数据库系统至关重要。MongoDB 作为领先的 NoSQL 文档型数据库,凭借其出色的性能、灵活的结构和易于使用的特性,赢得了全球开发者和企业的青睐。无论是构建现代 Web 应用、移动后端、物联网平台,还是处理大数据和实时分析,MongoDB 都能提供强大的支持。
本篇文章将带领你从零开始,详细了解如何获取 MongoDB,并手把手教你在主流操作系统(Windows、macOS、Linux)上完成其下载与安装。我们将覆盖不同的安装方法,讲解安装过程中的关键步骤和注意事项,并提供安装后的基础配置和验证指南,助你顺利迈出掌握 MongoDB 的第一步。
第一章:初识 MongoDB 与准备工作
1.1 什么是 MongoDB?
MongoDB 是一个开源的、面向文档的数据库,由 MongoDB, Inc. 开发和维护。与传统的关系型数据库(如 MySQL, PostgreSQL)使用表格、行和列存储数据不同,MongoDB 使用灵活的文档结构来存储数据。每个文档都是一个 BSON(Binary JSON)对象,类似于 JSON,可以包含嵌套的字段、数组等复杂结构。
MongoDB 的核心特点:
- 面向文档: 数据以灵活的文档形式存储,无需预定义严格的模式(schema-less)。这极大地提高了开发的灵活性和迭代速度。
- 高性能: 支持内存计算、高效索引和聚合框架,提供快速的数据读写能力。
- 高可用性: 通过复制集(Replica Sets)提供自动故障转移和数据冗余,确保数据库持续可用。
- 可扩展性: 通过分片(Sharding)技术,可以在水平方向上无限扩展数据库容量和吞吐量,应对海量数据和高并发访问。
- 丰富的功能: 支持事务(自 MongoDB 4.0 起)、地理空间查询、全文搜索、图计算等高级功能。
1.2 为什么要安装 MongoDB?
安装 MongoDB 是使用其功能的先决条件。无论你是想学习 NoSQL 数据库、开发使用 MongoDB 的应用程序,还是管理现有的 MongoDB 实例,第一步总是要让 MongoDB 服务器运行起来。通过本文的教学,你将能够:
- 在你的本地开发环境中搭建一个 MongoDB 服务器。
- 为进一步学习 MongoDB 的 shell 命令、驱动程序连接和高级特性打下基础。
- 了解在不同操作系统上安装 MongoDB 的差异和最佳实践。
1.3 安装前的准备工作
在开始下载和安装 MongoDB 之前,请确保你具备以下条件:
- 稳定的网络连接: 下载安装包需要访问 MongoDB 的官方网站。
- 操作系统的管理员权限: 安装过程可能需要在系统目录创建文件、修改环境变量、注册服务等,需要管理员权限才能完成。
- 了解你的操作系统信息: 知道你的操作系统类型(Windows, macOS, Linux)及其版本(如 Windows 10/11, macOS Ventura/Sonoma, Ubuntu 20.04/22.04, CentOS 7/8, RHEL 8/9 等)以及是 64 位系统。MongoDB 官方不再支持 32 位系统。
- 足够的磁盘空间: 安装 MongoDB 软件本身所需的空间不大,但数据库运行时需要存储数据,请确保安装 MongoDB 的分区有足够的剩余空间用于存放未来的数据文件和日志文件。
第二章:获取 MongoDB 安装包
获取 MongoDB 官方安装包的最佳途径是通过 MongoDB 的官方网站:https://www.mongodb.com/try/download。
MongoDB 提供了几个不同的发行版本,其中最常用的是:
- MongoDB Community Server: 这是免费的开源版本,包含了 MongoDB 的核心功能,适用于大多数个人开发者、小型项目和学习用途。我们将主要关注此版本的下载与安装。
- MongoDB Enterprise Server: 这是商业版本,在社区版基础上增加了企业级功能,如高级安全特性(LDAP/Kerberos 认证)、审计、加密以及更强大的管理工具。企业版需要许可证。
下载步骤:
- 访问下载页面: 打开浏览器,访问 https://www.mongodb.com/try/download。
- 选择版本 (Version): 在下载页面,你可以选择不同的 MongoDB 版本。
- 对于初学者和大多数用户,推荐选择页面的推荐版本(通常是当前最新的稳定发行版)。新版本通常包含性能改进、新特性和 bug 修复。
- 如果你需要特定版本以兼容某些应用或教程,可以在下拉菜单中选择。
- 选择操作系统 (OS): 根据你的操作系统选择对应的选项。MongoDB 支持 Windows, macOS, 各类 Linux 发行版(如 Ubuntu, Debian, RHEL, CentOS, Fedora, Amazon Linux 等)。
- 选择安装包类型 (Package): 根据你的操作系统和习惯选择合适的安装包类型。
- Windows: 通常提供
.msi
安装包,这是一个易于使用的图形界面安装程序。 - macOS: 通常提供
.tgz
压缩包,也推荐使用 Homebrew 包管理器进行安装(后面会详细介绍)。 - Linux: 通常提供对应发行版的包管理器安装包(
.deb
for Debian/Ubuntu,.rpm
for RHEL/CentOS/Fedora/Amazon Linux)或.tgz
压缩包。推荐使用包管理器,因为它更方便管理依赖和更新。
- Windows: 通常提供
- 点击下载 (Download): 确认选择无误后,点击下载按钮。浏览器将开始下载对应的安装文件。
下载完成后,你将获得一个适用于你操作系统的 MongoDB 安装文件或压缩包,例如 mongodb-community-x.x.x-win32-x86_64.msi
(Windows), mongodb-community-macos-x86_64-x.x.x.tgz
(macOS), mongodb-org-server_x.x.x_amd64.deb
(Ubuntu/Debian) 等。
第三章:在不同操作系统上安装 MongoDB
安装过程因操作系统和选择的安装方式而异。下面我们将详细介绍在 Windows、macOS 和 Linux 上的安装步骤。
3.1 在 Windows 上安装 MongoDB Community Server
在 Windows 上安装 MongoDB 最简单的方式是使用官方提供的 MSI 安装包。
步骤:
- 运行 MSI 安装包: 找到你下载的
.msi
文件,双击运行它。 - 接受许可协议: 阅读并接受 MongoDB Community Server 的许可协议,然后点击 “Next”。
- 选择安装类型:
- “Complete” (完整安装): 安装 MongoDB 的所有组件,包括服务器、shell、工具以及 MongoDB Compass(一个图形界面工具)。对于初学者,推荐选择完整安装。
- “Custom” (自定义安装): 允许你选择需要安装的组件和安装路径。如果你对 MongoDB 组件有特定需求或想更改安装位置,可以选择自定义安装。这里我们以完整安装为例。点击 “Complete”。
- 服务配置 (Service Configuration): 这是安装过程中的一个重要步骤,用于配置是否将 MongoDB 安装为 Windows 服务,以及如何运行该服务。
- “Install MongoDB as a Service”: 强烈推荐勾选此选项。 将 MongoDB 安装为 Windows 服务,这样它就可以在系统启动时自动运行,并在后台持续提供服务,无需手动启动。
- “Run service as Network Service user” (推荐): 使用 Windows 的内置 Network Service 账户运行服务。这是一个权限受限的账户,安全性较高。
- “Run service as a local or domain user”: 你也可以指定一个特定的本地或域用户账户来运行服务。通常用于更复杂的权限控制场景。
- Service Name: 服务的名称,默认为 “MongoDB”。可以保留默认。
- Data Directory: 指定 MongoDB 存储数据文件的路径。默认路径通常是
C:\Program Files\MongoDB\Server\<version>\data
。注意: 默认路径位于Program Files
下,可能会遇到权限问题。一个更好的实践是指定一个独立的目录,例如C:\mongodb\data
。请确保你指定的目录存在且当前用户有写入权限。 - Log Directory: 指定 MongoDB 存储日志文件的路径。默认路径通常是
C:\Program Files\MongoDB\Server\<version>\log
。同样推荐指定一个独立的目录, 例如C:\mongodb\log
。请确保目录存在且有写入权限。 - 配置完成后,点击 “Next”。
- 安装 MongoDB Compass: 安装程序可能会询问是否安装 MongoDB Compass。MongoDB Compass 是一个官方提供的图形化工具,可以方便地连接、管理和可视化你的 MongoDB 数据。推荐勾选此选项,它对初学者非常有帮助。点击 “Next”。
- 开始安装: 点击 “Install” 开始安装过程。如果系统弹出用户账户控制(UAC)提示,请点击 “Yes” 允许安装。
- 完成安装: 安装过程可能需要几分钟。完成后,点击 “Finish” 退出安装程序。
安装后的重要步骤 (Windows):
- 验证服务状态: 按
Win + R
,输入services.msc
并回车,打开 Windows 服务管理器。查找名为 “MongoDB” 的服务。检查其状态是否为 “正在运行”。如果不是,右键点击该服务,选择 “启动”。 - 创建数据和日志目录 (如果安装时未自动创建或指定了非默认路径): 如果你在安装时指定了非默认的数据和日志目录(例如
C:\mongodb\data
和C:\mongodb\log
),请手动在文件浏览器中创建这两个文件夹。确保运行 MongoDB 服务的用户(默认为 Network Service)对这些目录有完全控制权限。 - 将 MongoDB 的 bin 目录添加到系统 PATH 环境变量: 这一步不是强制性的,但 强烈推荐。将 MongoDB 的
bin
目录(通常是C:\Program Files\MongoDB\Server\<version>\bin
,如果你自定义了安装路径,请替换为你的路径)添加到系统 PATH 环境变量后,你就可以在任何命令提示符或 PowerShell 窗口中直接运行mongod
(MongoDB 服务器) 和mongosh
(MongoDB Shell) 命令,而无需切换到其安装目录。- 步骤:
- 搜索并打开 “编辑系统环境变量”。
- 点击右下角的 “环境变量” 按钮。
- 在 “系统变量” 列表中找到名为 “Path” 的变量,双击编辑。
- 点击 “新建”,然后粘贴你的 MongoDB
bin
目录路径(例如C:\Program Files\MongoDB\Server\6.0\bin
)。 - 点击 “确定” 关闭所有对话框。
- 注意: 修改 PATH 环境变量后,需要关闭并重新打开所有的命令提示符或 PowerShell 窗口,新的环境变量才会生效。
- 步骤:
- 运行 MongoDB Shell: 打开一个新的命令提示符或 PowerShell 窗口,输入
mongosh
并回车。如果 PATH 配置正确且 MongoDB 服务正在运行,你应该能看到连接成功的提示符,例如test>
. 输入db.version()
可以查看当前数据库版本,输入exit
退出 Shell。
现在,你已经成功在 Windows 上安装并运行了 MongoDB 服务器,并且可以通过 mongosh
连接到它了。
3.2 在 macOS 上安装 MongoDB Community Server
在 macOS 上安装 MongoDB 最推荐和便捷的方式是使用 Homebrew 包管理器。如果你的系统上没有安装 Homebrew,请先访问 https://brew.sh/ 按照其指引安装 Homebrew。
步骤 (使用 Homebrew):
- 更新 Homebrew: 打开终端应用程序,运行以下命令更新 Homebrew 及其包列表:
bash
brew update -
安装 MongoDB Community Server: MongoDB 的 Homebrew 公式位于
mongodb/brew
tap 中。首先需要 tap 这个仓库,然后安装。
bash
brew tap mongodb/brew
brew install mongodb-community@<版本号>- 将
<版本号>
替换为你想要安装的具体版本号,例如6.0
或7.0
。如果不指定版本号(直接brew install mongodb-community
),Homebrew 可能会安装最新的版本,但指定版本更明确。请根据你的需求选择。例如,安装 MongoDB 6.0:
bash
brew install [email protected] - Homebrew 会自动下载并安装 MongoDB 及其依赖。这个过程可能需要一些时间,取决于你的网络速度。
- 将
-
启动 MongoDB 服务: 安装完成后,可以使用 Homebrew Services 来启动 MongoDB 服务。
bash
brew services start mongodb-community@<版本号>- 同样,将
<版本号>
替换为你安装的版本号,例如[email protected]
。 - 这条命令会将 MongoDB 配置为在系统启动时自动运行,并立即启动它。
- 同样,将
-
验证服务状态: 可以使用以下命令检查服务状态:
bash
brew services list- 在列表中查找
mongodb-community@<版本号>
,其状态 (Status) 应该是started
。
- 在列表中查找
-
运行 MongoDB Shell: 打开新的终端窗口,输入
mongosh
并回车。
bash
mongosh- 如果服务正在运行,你应该会连接到 MongoDB 并看到 Shell 提示符。输入
db.version()
查看版本,输入exit
退出。
- 如果服务正在运行,你应该会连接到 MongoDB 并看到 Shell 提示符。输入
手动安装 (使用 TGZ 压缩包):
如果你选择下载 .tgz
压缩包进行手动安装,步骤如下:
- 解压文件: 将下载的
.tgz
文件移动到你想要安装的目录(例如/usr/local
或/opt/mongodb
),然后在终端中使用tar
命令解压:
bash
tar -zxvf mongodb-community-macos-x86_64-x.x.x.tgz - 重命名解压后的目录: 为了方便管理,可以将其重命名为更简洁的名称:
bash
mv mongodb-community-macos-x86_64-x.x.x mongodb- 现在 MongoDB 文件位于
/path/to/mongodb/
(替换/path/to
为你的解压路径)。可执行文件在/path/to/mongodb/bin/
。
- 现在 MongoDB 文件位于
- 创建数据和日志目录: MongoDB 默认将数据存储在
/data/db
,日志存储在/var/log/mongodb
。你需要手动创建这些目录并设置权限:
bash
sudo mkdir -p /data/db
sudo chown -R $(id -un):$(id -gn) /data/db # 将目录所有者设置为当前用户
# 或者你可以将数据目录放在你用户主目录下的其他位置,并运行时指定 --dbpath
sudo mkdir -p /usr/local/var/log/mongodb # 创建日志目录示例
sudo chown $(id -un):$(id -gn) /usr/local/var/log/mongodb- 如果你不想使用默认路径,可以在启动
mongod
时使用--dbpath
和--logpath
参数指定自定义路径。
- 如果你不想使用默认路径,可以在启动
- 将 bin 目录添加到 PATH (可选但推荐): 编辑你的 shell 配置文件(如
~/.bash_profile
,~/.zshrc
),添加 MongoDB 的bin
目录到 PATH 变量:
bash
export PATH=/path/to/mongodb/bin:$PATH- 保存文件,然后运行
source ~/.bash_profile
(或你的配置文件) 使更改生效,或者重新打开终端。
- 保存文件,然后运行
- 启动 MongoDB 服务器: 在终端中运行
mongod
命令。
bash
mongod --dbpath /data/db --logpath /usr/local/var/log/mongodb/mongo.log --fork--dbpath
:指定数据目录路径。--logpath
:指定日志文件路径。--fork
:让mongod
进程在后台运行。- 如果没有指定
--dbpath
,它会尝试使用/data/db
,如果该目录不存在或权限不足,启动会失败。 - 注意: 手动启动不会将其设置为服务,每次重启电脑后都需要手动启动。
- 运行 MongoDB Shell: 打开新的终端窗口,输入
mongosh
连接到运行中的服务器。
相比手动安装,使用 Homebrew 更方便管理和更新,因此在 macOS 上优先推荐使用 Homebrew。
3.3 在 Linux 上安装 MongoDB Community Server
在 Linux 上安装 MongoDB 最推荐的方式是使用对应发行版的包管理器,通过官方提供的软件仓库进行安装。这将确保安装过程顺利,并方便后续的更新和维护。
重要: MongoDB 官方提供了针对主流 Linux 发行版的仓库,包括 Debian, Ubuntu, RHEL, CentOS, Fedora, Amazon Linux 等。请根据你的具体发行版选择相应的安装步骤。
以下以 Ubuntu 22.04 (LTS) 为例,其他发行版步骤类似,只是命令和仓库配置稍有不同。
步骤 (使用 apt 包管理器 – 适用于 Debian/Ubuntu):
-
导入 MongoDB 公钥: apt 包管理器使用 GPG 密钥验证软件包的完整性。需要导入 MongoDB 官方 GPG 密钥。
bash
wget -qO - https://www.mongodb.org/static/pgp/server-x.x.asc | sudo apt-key add -- 将
x.x
替换为你想要安装的 MongoDB 大版本号,例如7.0
或6.0
。例如,导入 7.0 版本的密钥:
bash
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add - - 注意:
apt-key add
已被弃用。对于新版本的 Ubuntu/Debian,更推荐使用新的方法将密钥放在/etc/apt/trusted.gpg.d/
或/usr/share/keyrings/
下。例如,使用如下命令(Ubuntu 20.04+):
bash
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/mongodb.gpg > /dev/null
或者(更现代且推荐的方法,Ubuntu 22.04+):
bash
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
请根据你的具体发行版和版本选择正确的密钥导入方法。
- 将
-
创建 MongoDB 仓库文件: 在
/etc/apt/sources.list.d/
目录下创建一个新的文件来定义 MongoDB 的仓库源。文件名通常是mongodb-org-x.x.list
。
bash
echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list- 请根据你的发行版、版本号和导入密钥的方式修改上述命令:
jammy
: 替换为你的 Ubuntu 版本代号 (例如 focal for 20.04, jammy for 22.04, noble for 24.04)。7.0
: 替换为你想要安装的 MongoDB 大版本号。signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg
: 如果你使用了新的密钥导入方法,请确保这里的路径与你实际存放密钥的路径一致。如果使用了老的apt-key add
方法,则可以省略[ arch=amd64 signed-by=...]
部分。
- 请根据你的发行版、版本号和导入密钥的方式修改上述命令:
-
更新 apt 包列表:
bash
sudo apt update- 运行此命令后,系统会去读取新添加的 MongoDB 仓库信息。
-
安装 MongoDB 包: 安装
mongodb-org
元包,它会安装 MongoDB 服务器、Shell、工具等组件。
bash
sudo apt install -y mongodb-org- 安装特定版本:
sudo apt install -y mongodb-org=<version> mongodb-org-server=<version> mongodb-org-shell=<version> mongodb-org-tools=<version>
(将<version>
替换为完整的版本号,如7.0.10
)。通常安装mongodb-org
元包更方便。
- 安装特定版本:
-
启动 MongoDB 服务: 安装完成后,MongoDB 服务默认可能没有启动。使用
systemctl
命令启动它。
bash
sudo systemctl start mongod -
设置 MongoDB 服务开机自启: 强烈推荐设置 MongoDB 服务在系统启动时自动运行。
bash
sudo systemctl enable mongod -
验证服务状态: 检查服务是否正常运行。
bash
sudo systemctl status mongod- 状态应该是
active (running)
.
- 状态应该是
-
验证权限 (可选但推荐): 默认情况下,MongoDB 数据存储在
/var/lib/mongodb
,日志存储在/var/log/mongodb
。运行mongod
进程的用户(通常是mongodb
用户)需要对这些目录有读写权限。使用包管理器安装时,这些权限通常会自动设置好,但如果遇到权限问题,可以手动检查和修改:
bash
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb -
运行 MongoDB Shell: 打开终端,输入
mongosh
并回车。
bash
mongosh- 如果服务正常运行,你应该能连接到 MongoDB 并看到 Shell 提示符。输入
db.version()
查看版本,输入exit
退出。
- 如果服务正常运行,你应该能连接到 MongoDB 并看到 Shell 提示符。输入
步骤 (使用 yum/dnf 包管理器 – 适用于 RHEL/CentOS/Fedora/Amazon Linux):
- 创建 MongoDB 仓库文件: 在
/etc/yum.repos.d/
目录下创建一个新的文件,例如mongodb-community.repo
。
bash
sudo vi /etc/yum.repos.d/mongodb-community.repo -
编辑仓库文件: 在文件中添加以下内容,请根据你的系统版本和 MongoDB 版本进行调整:
ini
[mongodb-org-x.x]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/x.x/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-x.x.ascx.x
: 替换为你想安装的 MongoDB 大版本号(例如7.0
,6.0
)。$releasever
: yum/dnf 会自动替换为你的系统主版本号(例如 7, 8, 9)。baseurl
: 确保路径中的版本号与你的 MongoDB 大版本号一致。gpgkey
: 确保密钥 URL 中的版本号与你的 MongoDB 大版本号一致。- 保存并关闭文件。
-
安装 MongoDB 包:
bash
sudo yum install -y mongodb-org
# 或对于使用 dnf 的新版本系统 (如 Fedora, CentOS/RHEL 8+)
# sudo dnf install -y mongodb-org- 安装特定版本:
sudo yum install -y mongodb-org-<version> mongodb-org-server-<version> ...
(替换<version>
为完整版本号)。
- 安装特定版本:
-
启动 MongoDB 服务:
bash
sudo systemctl start mongod -
设置 MongoDB 服务开机自启:
bash
sudo systemctl enable mongod -
验证服务状态:
bash
sudo systemctl status mongod -
验证权限 (可选): 默认数据目录
/var/lib/mongo
,日志目录/var/log/mongodb
。检查mongod
用户(或mongodb
用户)对这些目录的权限。 -
调整 SELinux (如果启用并在 Enforcing 模式): 在 RHEL/CentOS 系统上,如果 SELinux 处于 Enforcing 模式,可能会阻止
mongod
访问数据和日志目录。你可能需要安装 SELinux 策略或将 SELinux 设置为 Permissive 模式(不推荐用于生产环境)。检查 SELinux 状态getenforce
。如果为 Enforcing 且 MongoDB 启动失败,请查阅 MongoDB 官方文档关于 SELinux 的配置指南。 -
运行 MongoDB Shell:
bash
mongosh
手动安装 (使用 TGZ 压缩包 – 适用于所有 Linux):
类似于 macOS 的手动安装步骤,下载 .tgz
文件,解压到指定目录,手动创建数据和日志目录并设置权限,然后通过指定 --dbpath
和 --logpath
路径来运行 mongod
命令。这种方法不涉及包管理器,灵活性高,但需要手动管理启动、停止和更新,不如包管理器方便。
第四章:安装后的基础配置与验证
成功安装并启动 MongoDB 服务后,你可以进行一些基础配置和验证。
4.1 MongoDB Shell (mongosh)
mongosh
是 MongoDB 官方提供的命令行工具,用于与 MongoDB 数据库进行交互。你可以使用它来创建/删除数据库、集合,插入/查询/更新/删除文档,运行管理命令等。
- 连接到本地默认服务器: 在终端或命令行中直接输入
mongosh
。它会尝试连接到默认地址mongodb://127.0.0.1:27017
。 - 连接到指定服务器: 使用连接字符串指定主机和端口,例如:
mongosh "mongodb://<hostname>:<port>"
- 基本命令:
show dbs;
:显示所有数据库。use <database_name>;
:切换到指定数据库(如果不存在则创建)。db.<collection_name>.find();
:查询指定集合的所有文档。db.version();
:显示当前数据库版本。exit;
:退出 Shell。
4.2 数据和日志目录
默认情况下:
* 数据目录: 存储所有的数据库文件。
* Windows (MSI 安装): 默认 C:\Program Files\MongoDB\Server\<version>\data
或安装时指定的路径。
* Linux (包管理器): 默认为 /var/lib/mongodb
。
* macOS (Homebrew): 默认为 /usr/local/var/mongodb
。
* 手动安装: 默认为 /data/db
或启动 mongod
时指定的 --dbpath
。
* 日志文件: 记录 MongoDB 服务器的运行日志。
* Windows (MSI 安装): 默认 C:\Program Files\MongoDB\Server\<version>\log
或安装时指定的路径。
* Linux (包管理器): 默认为 /var/log/mongodb/mongod.log
。
* macOS (Homebrew): 默认为 /usr/local/var/log/mongodb/mongod.log
。
* 手动安装: 默认为 /var/log/mongodb/mongod.log
或启动 mongod
时指定的 --logpath
。
确保运行 mongod
进程的用户对这些目录有读写权限。
4.3 配置文件
MongoDB 服务器可以通过配置文件进行详细配置。
* Windows (MSI 安装): 配置文件路径通常是 C:\Program Files\MongoDB\Server\<version>\bin\mongod.cfg
或安装时指定的路径。
* Linux (包管理器): 配置文件路径通常是 /etc/mongod.conf
。
* macOS (Homebrew): 配置文件路径通常是 /usr/local/etc/mongod.conf
。
* 手动安装: 运行时使用 -f
或 --config
参数指定配置文件路径。
配置文件采用 YAML 格式,包含网络设置(如 bindIp
和 port
)、存储设置(如 storage.dbPath
)、日志设置(如 systemLog.path
)等。
bindIp
: 默认情况下,MongoDB 只绑定到本地回环地址 (127.0.0.1
),这意味着只能从本机访问。如果需要从其他计算机访问 MongoDB,需要修改bindIp
,例如设置为0.0.0.0
(监听所有网络接口 – 注意安全风险,生产环境应配置防火墙),或者指定特定的 IP 地址。修改配置文件后需要重启 MongoDB 服务才能生效。port
: MongoDB 默认运行在 27017 端口。如果需要更改端口,可以修改配置文件。
4.4 防火墙设置
如果你的系统启用了防火墙,并且你需要在本机以外的计算机上访问 MongoDB(例如在虚拟机中运行 MongoDB,在主机上访问;或者在局域网内共享),你需要配置防火墙允许传入连接到 MongoDB 监听的端口(默认为 27017)。
- Windows: 在 Windows 防火墙中添加入站规则,允许 TCP 端口 27017。
- Linux (使用 firewalld):
bash
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload - Linux (使用 iptables):
bash
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
# 保存规则 (命令取决于你的 Linux 发行版) - Linux (使用 ufw – Ubuntu/Debian):
bash
sudo ufw allow 27017/tcp
sudo ufw reload
请务必只开放必要的端口给受信任的 IP 地址或网络,以保障数据库安全。
第五章:常见问题与故障排除
在安装或启动 MongoDB 时,可能会遇到一些问题。以下是一些常见问题及其解决方法:
- 权限不足 (EACCES):
- 问题: MongoDB 无法写入数据或日志目录。
- 原因: 运行
mongod
进程的用户没有对指定的数据目录 (dbPath
) 或日志目录 (logPath
) 的写入权限。 - 解决方法:
- 使用包管理器安装时,确认
mongod
进程的用户(通常是mongodb
)对/var/lib/mongodb
和/var/log/mongodb
具有正确权限(通常是chown -R mongodb:mongodb <目录>
)。 - 手动安装时,确保启动
mongod
的用户对--dbpath
和--logpath
指定的目录有读写权限。 - 在 Windows 上,确保运行服务的用户(默认为 Network Service)对指定的 Data 和 Log 目录有完全控制权限。尝试右键目录 -> 属性 -> 安全 -> 编辑/添加权限。
- 使用包管理器安装时,确认
- 文件路径不存在 (ENOENT):
- 问题:
mongod
启动时提示找不到数据目录或日志文件。 - 原因:
--dbpath
或--logpath
参数指定的目录或文件路径不存在。 - 解决方法: 手动创建所需的目录,并确保路径正确。如果是 Windows MSI 安装,检查在安装时指定的数据和日志目录是否存在。
- 问题:
- 端口已被占用 (Address already in use):
- 问题:
mongod
无法启动,提示端口已被占用。 - 原因: 另一个进程正在使用 MongoDB 默认端口 27017(或你指定的端口)。可能是之前未完全关闭的 MongoDB 进程,或者其他应用程序占用了该端口。
- 解决方法:
- 查找并终止占用该端口的进程。在 Linux/macOS 使用
sudo lsof -i :27017
或sudo netstat -tulnp | grep 27017
。在 Windows 使用netstat -ano | findstr :27017
找到 PID,然后用任务管理器或taskkill /PID <PID> /F
终止进程。 - 修改 MongoDB 配置文件,将
port
设置为其他未被占用的端口。
- 查找并终止占用该端口的进程。在 Linux/macOS 使用
- 问题:
mongosh
命令找不到:- 问题: 在终端或命令行中输入
mongosh
提示命令不存在。 - 原因: MongoDB 可执行文件所在的
bin
目录没有添加到系统的 PATH 环境变量中。 - 解决方法:
- 确认 MongoDB 的
bin
目录路径。 - 将该路径添加到系统的 PATH 环境变量中(参见前文各操作系统安装后的步骤)。
- 关闭并重新打开终端或命令行窗口使 PATH 生效。
- 或者,切换到 MongoDB 的
bin
目录下再运行mongosh
。
- 确认 MongoDB 的
- 问题: 在终端或命令行中输入
- 服务无法启动 (systemctl status mongod 显示 failed):
- 问题: MongoDB 服务启动失败。
- 原因: 可能有多种原因,如配置错误、权限问题、端口问题、日志文件问题等。
- 解决方法: 查看服务日志获取详细错误信息。
- Linux: 使用
journalctl -u mongod --since "1 hour ago"
或sudo cat /var/log/mongodb/mongod.log
(如果日志文件存在)。 - Windows: 检查日志文件(安装时指定的路径)或 Windows 事件查看器。
- 根据日志中的具体错误信息进行排查。常见的错误是权限问题、配置文件语法错误或数据目录问题。
- Linux: 使用
- 连接被拒绝 (Connection refused):
- 问题:
mongosh
或应用程序无法连接到 MongoDB 服务器。 - 原因:
- MongoDB 服务没有运行。检查服务状态并启动它。
- 防火墙阻止了连接。检查防火墙规则,确保允许连接到 MongoDB 端口。
- MongoDB 只绑定到本地回环地址 (
127.0.0.1
),而你尝试从其他 IP 连接。修改配置文件中的bindIp
设置。 - 连接字符串中的主机名或端口不正确。
- 问题:
排查问题时,仔细阅读错误信息是关键。MongoDB 的日志文件通常提供了最详细的线索。
第六章:后续学习方向
成功安装 MongoDB 只是第一步。接下来,你可以继续探索:
- MongoDB Shell (
mongosh
): 深入学习mongosh
的使用,掌握基本的数据操作(CRUD:Create, Read, Update, Delete)以及索引、聚合等功能。 - MongoDB Compass: 使用 MongoDB Compass 图形界面工具来管理数据库、查看数据、执行查询等,这对于初学者来说非常直观友好。
- MongoDB 驱动程序 (Drivers): 学习如何在你喜欢的编程语言(如 Node.js, Python, Java, C#, PHP 等)中使用 MongoDB 官方驱动程序连接数据库并进行开发。
- 数据建模: 了解 MongoDB 的文档数据模型设计原则和最佳实践。
- 索引: 学习如何创建和使用索引来优化查询性能。
- 复制集 (Replica Sets): 了解如何搭建和管理复制集以实现高可用性。
- 分片 (Sharding): 了解如何使用分片来处理大规模数据集和高并发负载。
- 安全: 学习如何启用认证、授权、加密等安全特性来保护你的 MongoDB 实例。
MongoDB 官方文档 (https://docs.mongodb.com/) 是学习 MongoDB 最权威和全面的资源。
总结
本文详细介绍了 MongoDB Community Server 的下载途径、在 Windows、macOS(使用 Homebrew 和手动)和 Linux(使用包管理器和手动)上的安装步骤,以及安装后的基础配置、验证方法和常见故障排除。
通过遵循本指南,你应该能够在你的开发环境中成功搭建起一个可用的 MongoDB 数据库实例。这为你探索 NoSQL 世界、构建现代应用程序奠定了坚实的基础。记住,安装仅仅是开始,持续的学习和实践才能让你真正掌握 MongoDB 的强大功能。
祝你学习愉快,编程顺利!