网站搜索

如何在 Ubuntu 24.04 上安装 MongoDB


Ubuntu 24.04(Noble Numbat)现已正式发布,可在任何支持的硬件上下载并安装用于生产环境。这种 NoSQL 数据库类型旨在实现高可扩展性和灵活性。MongoDB 将其数据存储在类 JSON 的文档结构中,即使数据包含复杂结构,也可以轻松操作。MongoDB 的灵活数据格式对使用各种编程语言的开发者具有很大吸引力。

终极 Ubuntu 桌面手册

像专业人士一样掌握 Ubuntu——从美观的桌面自定义到强大的终端自动化。非常适合希望完全掌控工作环境的开发人员、系统管理员和高级用户。

MongoDB 的一些流行应用包括:

  • 在移动应用开发中
  • 物联网中的分析数据存储
  • 一些内容管理系统默认使用 MongoDB
  • 社交媒体应用的开发
  • 用于实时数据分析和处理
  • 电子商务平台建设
  • 在存储任何类型的半结构化和非结构化数据时

在本文中,我们将演示如何在 Ubuntu 24.04 Linux 系统上安装 MongoDB。

更新系统并添加仓库

我们通过更新操作系统的软件仓库列表来进行安装。

sudo apt update

如果你愿意,可以更新系统上安装的所有软件包。

sudo apt upgrade -y

对系统应用的任何内核更新都需要重启。

[ -e /var/run/reboot-required ] && sudo reboot

如果系统已重启,请等待系统上线,然后再次登录并导入 MongoDB 仓库密钥。

sudo apt install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
   --dearmor

将 MongoDB 仓库添加到您的 Ubuntu 系统中。

echo "deb [ arch=amd64,arm64 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

运行以下命令以更新系统本地软件包数据库:

sudo apt update

确认没有印刷错误。

Hit:1 https://mirror.hetzner.com/ubuntu/packages noble InRelease
Ign:2 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 InRelease
Hit:3 https://mirror.hetzner.com/ubuntu/packages noble-updates InRelease
Hit:4 https://mirror.hetzner.com/ubuntu/packages noble-backports InRelease
Hit:5 https://mirror.hetzner.com/ubuntu/security noble-security InRelease
Get:6 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 Release [2,090 B]
Get:7 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 Release.gpg [866 B]
Get:8 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0/multiverse amd64 Packages [38.7 kB]
Get:9 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0/multiverse arm64 Packages [37.6 kB]
Fetched 79.2 kB in 2s (41.7 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

在 Ubuntu 24.04 上安装 MongoDB 服务器

一旦仓库已被添加并确认可用,即可在 Ubuntu 24.04 上安装 MongoDB 服务器。在当前活动的终端会话中,执行以下命令。

sudo apt -y install mongodb-org

通过检查软件版本确认安装是否成功。

$ mongod --version
db version v7.0.9
Build Info: {
    "version": "7.0.9",
    "gitVersion": "3ff3a3925c36ed277cf5eafca5495f2e3728dd67",
    "openSSLVersion": "OpenSSL 3.0.13 30 Jan 2024",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2204",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

MongoDB 数据目录是 /var/lib/mongodb,日志存储在 /var/log/mongodb 目录中。

配置可以在以下文件中自定义。

sudo vim /etc/mongod.conf

可以通过运行以下命令手动启动服务。

sudo systemctl start mongod

要重新启动,请使用:

sudo systemctl restart mongod

要停止服务,请执行:

sudo systemctl stop mongod

为了确保 MongoDB 服务在系统重启时启动,请运行:

sudo systemctl enable mongod

使用以下命令检查错误日志:

sudo tail -f /var/log/mongodb/mongod.log

使用 MongoDB 服务器

通过初始化 mongosh 会话开始使用 MongoDB

# mongosh
Current Mongosh Log ID:	663406e5292bc66b3a2202d7
Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.5
Using MongoDB:		7.0.9
Using Mongosh:		2.2.5

For mongosh info see: https://docs.mongodb.com/mongodb-shell/


To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.

------
   The server generated these startup warnings when booting
   2024-05-02T21:33:22.361+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
   2024-05-02T21:33:23.055+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
------

test>

让我们创建一个名为 Movies 的示例数据库

test> use Movies
switched to db Movies
Movies>

检查当前选择的数据库

Movies> db
Movies

MongoDB 只有在首次存储数据时才会创建数据库。数据可以是集合或文档。

向数据库添加数据

您可以使用 db.collection.insert() 命令将文档添加到您的数据库中。

Movies> db.movies.insert({name: "Dune: Part Two", year: 2024})
{
  acknowledged: true,
  insertedIds: { '0': ObjectId('66340a3690f41b1d482202da') }
}

Movies> db.movies.insert({name: "Challengers", year: 2024})
{
  acknowledged: true,
  insertedIds: { '0': ObjectId('66340a9b90f41b1d482202db') }
}

要列出所有已创建的数据库,请使用以下命令:

Movies> show dbs
Movies  152.00 KiB
admin    40.00 KiB
config   92.00 KiB
local    40.00 KiB

使用 db.dropDatabase() 命令删除现有数据库。

Movies>  show dbs
Movies  152.00 KiB
admin    40.00 KiB
config   92.00 KiB
local    40.00 KiB

test> use Movies
switched to db Movies
Movies>

Movies> db.dropDatabase()
{ ok: 1, dropped: 'Movies' }

现在检查数据库列表。

Movies> show dbs
admin   40.00 KiB
config  92.00 KiB
local   40.00 KiB

我们可以确认数据库已被删除。

参考文档:

  • MongoDB 基础
  • MongoDB 文档