环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)


文章目录

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 的开源数据库服务器软件,提供了核心数据库服务,包括数据存储、查询和管理功能。
    • 功能:包含 mongodmongos 等核心服务可执行文件,负责数据库管理和分片集群路由。
    • 适用人群:需要部署和管理 MongoDB 数据库服务的用户。
  • MongoDB Shell (mongosh)

    • 定义:MongoDB Shell 是与 MongoDB 数据库进行交互的命令行工具。
    • 功能:允许用户执行数据库操作,如插入、查询、更新数据,并管理数据库配置。
    • 适用人群:开发人员和数据库管理员,用于交互式数据库管理和调试。
1.4 MongoDB Community Server 和 MongoDB Shell 的对比

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
  1. 下载 MongoDB Community Server

    • 访问 MongoDB Community Server 下载页面 并选择适合您 Windows 版本的安装包。

    • 解释:根据操作系统下载对应版本的 MongoDB Community Server。该软件包包括数据库服务器和管理功能。

  2. 下载 MongoDB Shell

    • 访问 MongoDB Shell 下载页面 并下载适合 Windows 的 MongoDB Shell 压缩包。

    • 解释:MongoDB Shell 是一个独立的命令行工具,允许用户与 MongoDB 数据库进行交互。下载压缩包以便安装。

3.2.2 安装 MongoDB Community Server
  1. 双击下载的 MongoDB Community Server MSI 文件,启动安装向导。

  2. 选择自定义安装

    • 在安装类型中选择“Custom”,以便配置安装选项。
  3. 选择安装路径

    • 自定义 MongoDB 的安装路径,建议使用默认路径(例如:C:\Program Files\MongoDB\Server\6.0\)。此次安装本人是新建在目录D:\RootMongoDB下:
      环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
  1. 选择服务配置

    • 确保选择“Install MongoDB as a Service”选项,这样 MongoDB 将作为 Windows 服务运行,方便启动和管理。

      环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
    • (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
        • 描述:以特定的本地或域用户身份运行。
        • 适用场景:需要特殊权限配置或域用户集成时选择此选项。
    • (3) 数据和日志目录
      • Data Directory:自定义数据库文件的存储路径。
      • Log Directory:自定义日志文件的存储路径。
  2. 安装 MongoDB Compass
    在安装过程中,您可以选择是否安装 MongoDB Compass,这是一款官方的图形用户界面工具,用于可视化管理 MongoDB 数据库。

    • Install MongoDB Compass:勾选此选项将自动下载并安装 MongoDB Compass。
    • 适用场景
      • 新手用户:GUI 提供了直观的数据管理体验。
      • 需要可视化工具:便于浏览数据和调试查询。
    • 如果不需要 GUI 工具,可以取消勾选以节省磁盘空间。
环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
  1. 完成安装

    环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
    环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
3.2.3 安装 MongoDB Shell
  1. 解压缩 MongoDB Shell 压缩包

    • 下载完成后,找到压缩包文件并解压到您选择的目录中,例如:C:\Program Files\MongoDB\Shell\,这里我们将解压之后的内容直接复制到在目录D:\RootMongoDB下,它们可以安装在同一目录下,共用一个bin文件,不冲突:
      环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)-LMLPHP
  2. 注意:确保解压后的文件结构保持完整,尤其是 bin 目录中的可执行文件。

3.2.4 配置环境变量

为 MongoDB Community Server 和 MongoDB Shell 配置环境变量,以便在命令行中可以直接使用相关命令。

  • 步骤

    1. 打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置”。
    2. 点击“环境变量”按钮。
    3. 在“系统变量”中找到 Path,然后点击“编辑”。
    4. 添加 MongoDB Server 的 bin 目录路径,如:C:\Program Files\MongoDB\Server\6.0\bin
    5. 添加 MongoDB Shell 的解压目录路径,如:C:\Program Files\MongoDB\Shell\bin
    6. 点击“确定”保存更改。
  • 注意:这里由于本人将两者安装在同一目录下,所以只需配置同一个路径D:\RootMongoDB\bin即可

  • 解释:配置环境变量后,您可以在命令行直接输入 mongodmongosh 来使用 MongoDB 服务器和 Shell 工具。

3.2.5 验证安装
  1. 打开 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: file
  path: 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 步骤说明
  1. 启动 MongoDB Shell

    命令

    mongosh
    

    运行位置:在 Windows 的 PowerShell、命令提示符(CMD)或者其他操作系统的终端中运行。

    作用:启动 MongoDB Shell 工具,以便连接到正在运行的 MongoDB Server 实例。启动后,您将进入一个 MongoDB Shell 会话,可以在其中执行数据库命令。

  2. 切换到 admin 数据库

    命令

    use admin
    

    运行位置:在 MongoDB Shell 提示符(通常是 > 符号)下输入。

    作用:切换到 admin 数据库。admin 数据库是 MongoDB 中一个特殊的数据库,用于存储数据库管理员账户和其他系统级设置。在此数据库中创建用户,以便拥有全局管理权限。

  3. 创建管理员用户

    命令

    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 完整执行示例

以下是完整的操作流程:

  1. 打开Power Shell终端并输入 mongosh 以启动 MongoDB Shell。

    PS C:\Users\YourUserName> mongosh
    

    这将进入 MongoDB Shell,并显示类似以下内容:

    Current Mongosh Log ID: ...
    Connecting to: mongodb://localhost:27017/
    
  2. 输入以下命令以切换到 admin 数据库:

    > use admin
    

    将显示:

    switched to db admin
    
  3. 输入以下命令创建管理员用户:

    > 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 的优势,实现高效的数据存储与管理。

08-04 21:30