环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)
MongoDB 是一个基于文档的 NoSQL 数据库,以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装和配置过程,包括 MongoDB Community Server 和 MongoDB Shell 的介绍、下载、安装、基本配置和运行。通过图文并茂的方式,您将能够快速上手并成功部署 MongoDB 环境。
(全文大约9000字,阅读需要22分钟)
文章目录
- 环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)
- 1. 介绍
- 1.1 MongoDB 的优势
- 1.2 使用场景
- 1.3 MongoDB Community Server 与 MongoDB Shell
- 1.4 MongoDB Community Server 和 MongoDB Shell 的对比
- 2. 准备工作
- 2.1 系统要求
- 2.2 所需工具
- 3. MongoDB Community Server 和 MongoDB Shell的安装
- 3.1 在 Linux 上安装 MongoDB
- 3.1.1 更新系统
- 3.1.2 导入 MongoDB 公共密钥
- 3.1.3 添加 MongoDB 源
- 3.1.4 安装 MongoDB Community Server
- 3.1.5 安装 MongoDB Shell
- 3.2 在 Windows 上安装 MongoDB
- 3.2.1 下载 MongoDB Community Server 和 MongoDB Shell
- 3.2.2 安装 MongoDB Community Server
- 3.2.3 安装 MongoDB Shell
- 3.2.4 配置环境变量
- 3.2.5 验证安装
- 4. 配置 MongoDB(Windows)
- 4.1 配置文件(如果bin文件夹下已自动生成,则跳过此步)
- 4.1.1 配置文件示例
- 4.1.2 编辑配置文件
- 4.2 启动和停止 MongoDB Server
- 4.2.1 启动 MongoDB Server
- 4.2.2 停止 MongoDB Server
- 4.3 配置用户和权限
- 4.3.1 步骤说明
- 4.3.2 完整执行示例
- 4.3.3 作用说明
- 4.3.4 总结
- 5. 验证 MongoDB 安装(Windows)
- 5.1 验证服务状态
- 5.2 连接到 MongoDB
- 6. 常见问题及解决方案
- 6.1 无法启动 MongoDB 服务
- 6.2 身份验证失败
- 6.3 连接超时
- 7. 总结
1. 介绍
MongoDB 是一个面向文档的数据库管理系统,它提供了高效的查询和大数据处理能力。它与传统关系型数据库不同,采用了 BSON(一种类 JSON 的存储格式)来存储数据。本节将简要介绍 MongoDB 的优势和使用场景,并分别介绍 MongoDB Community Server 和 MongoDB Shell。
1.1 MongoDB 的优势
- 灵活的数据模型:MongoDB 允许使用复杂的数据结构来存储数据,如嵌套文档和数组。
- 高可扩展性:支持水平扩展,可以轻松处理海量数据。
- 强大的查询功能:支持丰富的查询语法、聚合操作和全文搜索。
1.2 使用场景
- 大数据应用
- 内容管理系统
- 实时分析与数据处理
1.3 MongoDB Community Server 与 MongoDB Shell
-
MongoDB Community Server:
- 定义:这是 MongoDB 的开源数据库服务器软件,提供了核心数据库服务,包括数据存储、查询和管理功能。
- 功能:包含
mongod
和mongos
等核心服务可执行文件,负责数据库管理和分片集群路由。 - 适用人群:需要部署和管理 MongoDB 数据库服务的用户。
-
MongoDB Shell (mongosh):
- 定义:MongoDB Shell 是与 MongoDB 数据库进行交互的命令行工具。
- 功能:允许用户执行数据库操作,如插入、查询、更新数据,并管理数据库配置。
- 适用人群:开发人员和数据库管理员,用于交互式数据库管理和调试。
1.4 MongoDB Community Server 和 MongoDB Shell 的对比
特点 | MongoDB Community Server | MongoDB Shell (mongosh) |
---|---|---|
类型 | 数据库服务器软件 | 数据库交互工具 |
功能 | 提供数据库存储、查询、索引、聚合等服务 | 提供命令行界面与 MongoDB 数据库交互 |
安装包 | 包含 mongod 、mongos 等核心服务可执行文件 | 独立的可执行文件 mongosh ,用于与数据库进行交互 |
角色 | 实际负责数据存储和管理的核心系统 | 用户用于执行数据库操作(如查询、插入数据)的客户端 |
运行环境 | 在服务器上运行,提供数据库服务 | 在客户端或用户计算机上运行,用于连接并操作 MongoDB 实例 |
人群 | 数据库管理员、开发人员 | 开发人员、数据库管理员 |
2. 准备工作
在安装 MongoDB 之前,您需要确保系统满足以下要求,并准备好必要的软件和工具。
2.1 系统要求
- 操作系统:Linux、Windows、macOS
- 硬件要求:最低 512MB 内存,2GB 硬盘空间
2.2 所需工具
- 命令行工具:终端(Linux/macOS)或 PowerShell(Windows)
- 文本编辑器:如 VSCode、Sublime Text 或 Notepad++
3. MongoDB Community Server 和 MongoDB Shell的安装
根据您的操作系统选择合适的安装方法。本节将详细介绍在不同操作系统上安装 MongoDB Community Server 和 MongoDB Shell 的步骤。
3.1 在 Linux 上安装 MongoDB
以下是在 Ubuntu 系统上安装 MongoDB 的步骤,包括安装 MongoDB Community Server 和 MongoDB Shell。
3.1.1 更新系统
sudo apt update
sudo apt upgrade
- 解释:在安装任何新软件之前,确保您的系统包是最新的。
3.1.2 导入 MongoDB 公共密钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
- 解释:通过导入 MongoDB 的公共密钥来验证安装包的完整性。
3.1.3 添加 MongoDB 源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
- 解释:将 MongoDB 的软件源添加到系统的源列表中。
3.1.4 安装 MongoDB Community Server
sudo apt update
sudo apt install -y mongodb-org
- 解释:更新包列表并安装 MongoDB Community Server。
3.1.5 安装 MongoDB Shell
MongoDB Shell 是一个单独的安装包。可以通过以下命令安装:
sudo apt install -y mongodb-mongosh
- 解释:通过 apt 包管理器安装 MongoDB Shell,确保您可以使用命令行工具与 MongoDB 交互。
3.2 在 Windows 上安装 MongoDB
3.2.1 下载 MongoDB Community Server 和 MongoDB Shell
-
下载 MongoDB Community Server
-
访问 MongoDB Community Server 下载页面 并选择适合您 Windows 版本的安装包。
-
解释:根据操作系统下载对应版本的 MongoDB Community Server。该软件包包括数据库服务器和管理功能。
-
-
下载 MongoDB Shell
-
访问 MongoDB Shell 下载页面 并下载适合 Windows 的 MongoDB Shell 压缩包。
-
解释:MongoDB Shell 是一个独立的命令行工具,允许用户与 MongoDB 数据库进行交互。下载压缩包以便安装。
-
3.2.2 安装 MongoDB Community Server
-
双击下载的 MongoDB Community Server MSI 文件,启动安装向导。
-
选择自定义安装
- 在安装类型中选择“Custom”,以便配置安装选项。
-
选择安装路径
- 自定义 MongoDB 的安装路径,建议使用默认路径(例如:
C:\Program Files\MongoDB\Server\6.0\
)。此次安装本人是新建在目录D:\RootMongoDB
下:
- 自定义 MongoDB 的安装路径,建议使用默认路径(例如:
-
选择服务配置
-
确保选择“Install MongoDB as a Service”选项,这样 MongoDB 将作为 Windows 服务运行,方便启动和管理。
- (1) Install MongoD as a Service:勾选此项以确保 MongoDB 作为 Windows 服务运行。
- (2) 运行选项:
- Run service as Network Service user:
- 描述:以 Windows 内置的“Network Service”账户运行。
- 优点:提供了较高的安全性和默认权限。
- 建议:如果没有特殊需求,选择此选项。
- Run service as a local or domain user:
- 描述:以特定的本地或域用户身份运行。
- 适用场景:需要特殊权限配置或域用户集成时选择此选项。
- Run service as Network Service user:
- (3) 数据和日志目录:
- Data Directory:自定义数据库文件的存储路径。
- Log Directory:自定义日志文件的存储路径。
-
-
安装 MongoDB Compass
在安装过程中,您可以选择是否安装 MongoDB Compass,这是一款官方的图形用户界面工具,用于可视化管理 MongoDB 数据库。- Install MongoDB Compass:勾选此选项将自动下载并安装 MongoDB Compass。
- 适用场景:
- 新手用户:GUI 提供了直观的数据管理体验。
- 需要可视化工具:便于浏览数据和调试查询。
- 如果不需要 GUI 工具,可以取消勾选以节省磁盘空间。
-
完成安装
3.2.3 安装 MongoDB Shell
-
解压缩 MongoDB Shell 压缩包
- 下载完成后,找到压缩包文件并解压到您选择的目录中,例如:
C:\Program Files\MongoDB\Shell\
,这里我们将解压之后的内容直接复制到在目录D:\RootMongoDB
下,它们可以安装在同一目录下,共用一个bin
文件,不冲突:
- 下载完成后,找到压缩包文件并解压到您选择的目录中,例如:
-
注意:确保解压后的文件结构保持完整,尤其是
bin
目录中的可执行文件。
3.2.4 配置环境变量
为 MongoDB Community Server 和 MongoDB Shell 配置环境变量,以便在命令行中可以直接使用相关命令。
-
步骤:
- 打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置”。
- 点击“环境变量”按钮。
- 在“系统变量”中找到
Path
,然后点击“编辑”。 - 添加 MongoDB Server 的
bin
目录路径,如:C:\Program Files\MongoDB\Server\6.0\bin
。 - 添加 MongoDB Shell 的解压目录路径,如:
C:\Program Files\MongoDB\Shell\bin
。 - 点击“确定”保存更改。
-
注意:这里由于本人将两者安装在同一目录下,所以只需配置同一个路径
D:\RootMongoDB\bin
即可 -
解释:配置环境变量后,您可以在命令行直接输入
mongod
或mongosh
来使用 MongoDB 服务器和 Shell 工具。
3.2.5 验证安装
-
打开 PowerShell,输入以下命令验证 MongoDB Community Server 和 MongoDB Shell 是否安装成功。
mongod --version
- 解释:检查 MongoDB Server 是否安装成功及版本信息,确保服务器可以正常启动。
mongosh --version
- 解释:检查 MongoDB Shell 是否安装成功及版本信息,确保命令行工具可以正常使用。
4. 配置 MongoDB(Windows)
安装完成后,我们需要对 MongoDB Community Server 进行详细配置,以确保其正常运行并满足项目需求。MongoDB Shell 不需要额外的配置文件,因为它是一个用于连接和操作数据库的命令行工具,而不是数据库服务器本身。
4.1 配置文件(如果bin文件夹下已自动生成,则跳过此步)
配置文件是 MongoDB Community Server 的核心组件,定义了数据库的行为、存储路径、网络访问和其他服务设置。在 Windows 上,配置文件 mongod.cfg
可以手动创建或在安装过程中自动生成。例如:C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg
。这种配置在所有操作系统(Windows、Linux、macOS)上都是必要的。
MongoDB Shell 无需配置文件,因为它主要用于连接和操作数据库实例。
4.1.1 配置文件示例
# mongod.cfg# 数据库路径
storage:dbPath: C:\Program Files\MongoDB\Data # 指定数据库文件的存储路径,确保此路径存在以存储 MongoDB 的数据。# 日志路径
systemLog:destination: filepath: C:\Program Files\MongoDB\Logs\mongod.log # 指定日志文件路径,用于记录 MongoDB 的操作日志。logAppend: true # 启用日志追加模式,避免日志被覆盖。# 网络设置
net:port: 27017 # 指定 MongoDB 服务器监听的端口号,默认 27017。bindIp: 127.0.0.1 # 指定绑定的 IP 地址,默认只允许本地访问,提升安全性。# 进程管理
processManagement:windowsService:serviceName: "MongoDB" # 服务名称displayName: "MongoDB Server" # 服务显示名称description: "MongoDB Database Server" # 服务描述
- 解释:配置文件中定义了 MongoDB 的数据存储路径、日志记录路径、网络绑定配置及服务管理配置。如果配置文件没有正确设置,可能导致 MongoDB 无法启动或数据存储不正确。
4.1.2 编辑配置文件
使用文本编辑器(如 Notepad++)编辑 mongod.cfg
文件。
notepad "C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg"
- 注意:如果需要更改数据目录或日志目录,确保这些目录存在并且 MongoDB 服务有权访问这些路径。
4.2 启动和停止 MongoDB Server
启动和停止的是 MongoDB Community Server,而不是 MongoDB Shell。MongoDB Shell 用于连接到已经运行的 MongoDB 实例,因此没有启动和停止的过程。
4.2.1 启动 MongoDB Server
要启动 MongoDB Server,可以使用以下方法:
-
使用服务管理器:
打开“服务管理器”,找到“MongoDB Server”服务,右键选择“启动”。
-
使用 PowerShell 命令:
以管理员身份打开 PowerShell:
net start MongoDB
- 注意:如果遇到“拒绝访问”错误,请确保 PowerShell 是以管理员身份运行。
4.2.2 停止 MongoDB Server
停止 MongoDB Server 的方法如下:
-
使用服务管理器:
在“服务管理器”中,右键点击“MongoDB Server”服务,选择“停止”。
-
使用 PowerShell 命令:
以管理员身份打开 PowerShell:
net stop MongoDB
4.3 配置用户和权限
在 MongoDB 中,为了保护数据库和限制对敏感数据的访问,通常需要配置用户和权限,创建一个管理员用户。下面的步骤将指导您使用 MongoDB Shell 连接到 MongoDB Community Server 并创建一个管理员用户。
运行环境:这些命令是在 MongoDB Shell (mongosh) 中运行的。MongoDB Shell 是一个命令行工具,用于与 MongoDB 数据库进行交互。请确保 MongoDB Server 正在运行,并且 MongoDB Shell 的环境变量已正确配置,以便您可以从命令行调用 mongosh
。
4.3.1 步骤说明
-
启动 MongoDB Shell
命令:
mongosh
运行位置:在 Windows 的 PowerShell、命令提示符(CMD)或者其他操作系统的终端中运行。
作用:启动 MongoDB Shell 工具,以便连接到正在运行的 MongoDB Server 实例。启动后,您将进入一个 MongoDB Shell 会话,可以在其中执行数据库命令。
-
切换到
admin
数据库命令:
use admin
运行位置:在 MongoDB Shell 提示符(通常是
>
符号)下输入。作用:切换到
admin
数据库。admin
数据库是 MongoDB 中一个特殊的数据库,用于存储数据库管理员账户和其他系统级设置。在此数据库中创建用户,以便拥有全局管理权限。 -
创建管理员用户
命令:
db.createUser({user: "admin",pwd: "yourpassword",roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
运行位置:继续在 MongoDB Shell 提示符下输入。
作用:此命令用于在当前选择的
admin
数据库中创建一个新的用户。user: "admin"
:指定用户名为admin
。pwd: "yourpassword"
:指定用户的密码为yourpassword
。请根据实际需要替换为安全的密码。roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
:role: "userAdminAnyDatabase"
:授予用户在所有数据库中创建、删除和管理用户的权限。db: "admin"
:角色的作用范围限制在admin
数据库。
4.3.2 完整执行示例
以下是完整的操作流程:
-
打开Power Shell终端并输入
mongosh
以启动 MongoDB Shell。PS C:\Users\YourUserName> mongosh
这将进入 MongoDB Shell,并显示类似以下内容:
Current Mongosh Log ID: ... Connecting to: mongodb://localhost:27017/
-
输入以下命令以切换到
admin
数据库:> use admin
将显示:
switched to db admin
-
输入以下命令创建管理员用户:
> db.createUser({user: "admin",pwd: "yourpassword",roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
如果成功创建用户,将显示:
Successfully added user: { "user" : "admin", "roles" : [ "userAdminAnyDatabase" ] }
此时,如果想要退出 MongoDB Shell,则输入
exit
4.3.3 作用说明
- 创建管理员用户:通过这种方式创建的管理员用户能够管理 MongoDB 的用户和角色,这是在使用 MongoDB 的身份验证模式下一个常见的安全措施。
- 权限管理:管理员用户拥有在所有数据库中创建和管理用户的权限,从而在数据库访问控制方面提供了灵活性和安全性。
4.3.4 总结
- MongoDB Community Server:需要进行配置以指定数据存储、日志路径、网络设置等,这些配置在 Windows、Linux 和 macOS 上都是必需的。
- MongoDB Shell:不需要配置文件,仅用于与 MongoDB Server 进行交互。
- 启动和停止:启动和停止操作是针对 MongoDB Server,而非 Shell,使用服务管理器或 PowerShell 管理服务。
通过正确配置 MongoDB Community Server,您可以确保其稳定运行和安全操作。如果您有其他问题或需要进一步帮助,请随时联系我。
5. 验证 MongoDB 安装(Windows)
5.1 验证服务状态
通过以下命令检查 MongoDB 服务状态:
Get-Service -Name MongoDB
- 解释:确保 MongoDB 服务正在运行。
5.2 连接到 MongoDB
使用 MongoDB Shell 连接到 MongoDB:
mongosh -u admin -p --authenticationDatabase admin
- 解释:使用管理员身份连接到 MongoDB,确保身份验证配置正确。
6. 常见问题及解决方案
在使用 MongoDB 的过程中,您可能会遇到一些常见问题。以下是一些问题及其解决方案。
6.1 无法启动 MongoDB 服务
可能原因:配置文件错误或端口被占用。
解决方案:检查配置文件语法,确保 mongod.cfg
中的设置正确;使用 netstat -an
命令检查端口占用情况。
6.2 身份验证失败
可能原因:用户名或密码错误。
解决方案:确保使用正确的用户名和密码,检查数据库中用户的权限配置。
6.3 连接超时
可能原因:防火墙阻止连接或网络不稳定。
解决方案:检查 Windows 防火墙设置,确保允许 MongoDB 的端口(默认 27017)访问;确保网络连接稳定。
这些步骤详细说明了在 Windows 上通过不同方式安装 MongoDB Community Server 和 MongoDB Shell 的具体过程,包括下载、配置和验证安装的不同步骤。希望能帮助您在 Windows 环境下顺利安装并配置 MongoDB!
7. 总结
通过本教程,您已经掌握了如何在不同操作系统上安装和配置 MongoDB Community Server 和 MongoDB Shell,并解决了一些常见问题。MongoDB 的强大功能和灵活性使其成为现代应用开发中的重要工具。希望您能在实际项目中充分利用 MongoDB 的优势,实现高效的数据存储与管理。