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

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

MongoDB 是一个基于文档的 NoSQL 数据库,以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装和配置过程,包括 MongoDB Community Server 和 MongoDB Shell 的介绍、下载、安装、基本配置和运行。通过图文并茂的方式,您将能够快速上手并成功部署 MongoDB 环境。

(全文大约9000字,阅读需要22分钟)


文章目录

    • [环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)](#环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主))
      • [1. 介绍](#1. 介绍)
        • [1.1 MongoDB 的优势](#1.1 MongoDB 的优势)
        • [1.2 使用场景](#1.2 使用场景)
        • [1.3 MongoDB Community Server 与 MongoDB Shell](#1.3 MongoDB Community Server 与 MongoDB Shell)
        • [1.4 MongoDB Community Server 和 MongoDB Shell 的对比](#1.4 MongoDB Community Server 和 MongoDB Shell 的对比)
      • [2. 准备工作](#2. 准备工作)
        • [2.1 系统要求](#2.1 系统要求)
        • [2.2 所需工具](#2.2 所需工具)
      • [3. MongoDB Community Server 和 MongoDB Shell的安装](#3. MongoDB Community Server 和 MongoDB Shell的安装)
        • [3.1 在 Linux 上安装 MongoDB](#3.1 在 Linux 上安装 MongoDB)
          • [3.1.1 更新系统](#3.1.1 更新系统)
          • [3.1.2 导入 MongoDB 公共密钥](#3.1.2 导入 MongoDB 公共密钥)
          • [3.1.3 添加 MongoDB 源](#3.1.3 添加 MongoDB 源)
          • [3.1.4 安装 MongoDB Community Server](#3.1.4 安装 MongoDB Community Server)
          • [3.1.5 安装 MongoDB Shell](#3.1.5 安装 MongoDB Shell)
        • [3.2 在 Windows 上安装 MongoDB](#3.2 在 Windows 上安装 MongoDB)
          • [3.2.1 下载 MongoDB Community Server 和 MongoDB Shell](#3.2.1 下载 MongoDB Community Server 和 MongoDB Shell)
          • [3.2.2 安装 MongoDB Community Server](#3.2.2 安装 MongoDB Community Server)
          • [3.2.3 安装 MongoDB Shell](#3.2.3 安装 MongoDB Shell)
          • [3.2.4 配置环境变量](#3.2.4 配置环境变量)
          • [3.2.5 验证安装](#3.2.5 验证安装)
      • [4. 配置 MongoDB(Windows)](#4. 配置 MongoDB(Windows))
        • [4.1 配置文件(如果bin文件夹下已自动生成,则跳过此步)](#4.1 配置文件(如果bin文件夹下已自动生成,则跳过此步))
          • [4.1.1 配置文件示例](#4.1.1 配置文件示例)
          • [4.1.2 编辑配置文件](#4.1.2 编辑配置文件)
        • [4.2 启动和停止 MongoDB Server](#4.2 启动和停止 MongoDB Server)
          • [4.2.1 启动 MongoDB Server](#4.2.1 启动 MongoDB Server)
          • [4.2.2 停止 MongoDB Server](#4.2.2 停止 MongoDB Server)
        • [4.3 配置用户和权限](#4.3 配置用户和权限)
          • [4.3.1 步骤说明](#4.3.1 步骤说明)
          • [4.3.2 完整执行示例](#4.3.2 完整执行示例)
          • [4.3.3 作用说明](#4.3.3 作用说明)
          • [4.3.4 总结](#4.3.4 总结)
      • [5. 验证 MongoDB 安装(Windows)](#5. 验证 MongoDB 安装(Windows))
        • [5.1 验证服务状态](#5.1 验证服务状态)
        • [5.2 连接到 MongoDB](#5.2 连接到 MongoDB)
      • [6. 常见问题及解决方案](#6. 常见问题及解决方案)
        • [6.1 无法启动 MongoDB 服务](#6.1 无法启动 MongoDB 服务)
        • [6.2 身份验证失败](#6.2 身份验证失败)
        • [6.3 连接超时](#6.3 连接超时)
      • [7. 总结](#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 的开源数据库服务器软件,提供了核心数据库服务,包括数据存储、查询和管理功能。
    • 功能 :包含 mongodmongos 等核心服务可执行文件,负责数据库管理和分片集群路由。
    • 适用人群:需要部署和管理 MongoDB 数据库服务的用户。
  • MongoDB Shell (mongosh)

    • 定义:MongoDB Shell 是与 MongoDB 数据库进行交互的命令行工具。
    • 功能:允许用户执行数据库操作,如插入、查询、更新数据,并管理数据库配置。
    • 适用人群:开发人员和数据库管理员,用于交互式数据库管理和调试。
1.4 MongoDB Community Server 和 MongoDB Shell 的对比
特点 MongoDB Community Server MongoDB Shell (mongosh)
类型 数据库服务器软件 数据库交互工具
功能 提供数据库存储、查询、索引、聚合等服务 提供命令行界面与 MongoDB 数据库交互
安装包 包含 mongodmongos 等核心服务可执行文件 独立的可执行文件 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 更新系统
bash 复制代码
sudo apt update
sudo apt upgrade
  • 解释:在安装任何新软件之前,确保您的系统包是最新的。
3.1.2 导入 MongoDB 公共密钥
bash 复制代码
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
  • 解释:通过导入 MongoDB 的公共密钥来验证安装包的完整性。
3.1.3 添加 MongoDB 源
bash 复制代码
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
bash 复制代码
sudo apt update
sudo apt install -y mongodb-org
  • 解释:更新包列表并安装 MongoDB Community Server。
3.1.5 安装 MongoDB Shell

MongoDB Shell 是一个单独的安装包。可以通过以下命令安装:

bash 复制代码
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下:
  1. 选择服务配置

    • 确保选择"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
        • 描述:以特定的本地或域用户身份运行。
        • 适用场景:需要特殊权限配置或域用户集成时选择此选项。
    • (3) 数据和日志目录
      • Data Directory:自定义数据库文件的存储路径。
      • Log Directory:自定义日志文件的存储路径。
  2. 安装 MongoDB Compass

    在安装过程中,您可以选择是否安装 MongoDB Compass,这是一款官方的图形用户界面工具,用于可视化管理 MongoDB 数据库。

    • Install MongoDB Compass:勾选此选项将自动下载并安装 MongoDB Compass。
    • 适用场景
      • 新手用户:GUI 提供了直观的数据管理体验。
      • 需要可视化工具:便于浏览数据和调试查询。
    • 如果不需要 GUI 工具,可以取消勾选以节省磁盘空间。
  1. 完成安装


3.2.3 安装 MongoDB Shell
  1. 解压缩 MongoDB Shell 压缩包

    • 下载完成后,找到压缩包文件并解压到您选择的目录中,例如:C:\Program Files\MongoDB\Shell\,这里我们将解压之后的内容直接复制到在目录D:\RootMongoDB下,它们可以安装在同一目录下,共用一个bin文件,不冲突:
  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 是否安装成功。

    powershell 复制代码
    mongod --version
    • 解释:检查 MongoDB Server 是否安装成功及版本信息,确保服务器可以正常启动。
    powershell 复制代码
    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 配置文件示例
yaml 复制代码
# 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 文件。

powershell 复制代码
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:

    powershell 复制代码
    net start MongoDB
    • 注意:如果遇到"拒绝访问"错误,请确保 PowerShell 是以管理员身份运行。
4.2.2 停止 MongoDB Server

停止 MongoDB Server 的方法如下:

  • 使用服务管理器

    在"服务管理器"中,右键点击"MongoDB Server"服务,选择"停止"。

  • 使用 PowerShell 命令

    以管理员身份打开 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

    命令

    powershell 复制代码
    mongosh

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

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

  2. 切换到 admin 数据库

    命令

    javascript 复制代码
    use admin

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

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

  3. 创建管理员用户

    命令

    javascript 复制代码
    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。

    shell 复制代码
    PS C:\Users\YourUserName> mongosh

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

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

    powershell 复制代码
    > use admin

    将显示:

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

    powershell 复制代码
    > db.createUser({
        user: "admin",
        pwd: "yourpassword",
        roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
      })

    如果成功创建用户,将显示:

    Successfully added user: { "user" : "admin", "roles" : [ "userAdminAnyDatabase" ] }
    

    此时,如果想要退出 MongoDB Shell,则输入

    powershell 复制代码
    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 服务状态:

powershell 复制代码
Get-Service -Name MongoDB
  • 解释:确保 MongoDB 服务正在运行。
5.2 连接到 MongoDB

使用 MongoDB Shell 连接到 MongoDB:

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

相关推荐
梦想平凡12 分钟前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO22 分钟前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
唐宋元明清218832 分钟前
.NET 阻止系统睡眠/息屏
windows·电源
Ewen Seong34 分钟前
mysql系列5—Innodb的缓存
数据库·mysql·缓存
码农老起1 小时前
企业如何通过TDSQL实现高效数据库迁移与性能优化
数据库·性能优化
夏木~2 小时前
Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率
数据库·oracle
W21552 小时前
Liunx下MySQL:表的约束
数据库·mysql
黄名富2 小时前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
言、雲2 小时前
从tryLock()源码来出发,解析Redisson的重试机制和看门狗机制
java·开发语言·数据库
yylの博客2 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh