如何在 Debian 11/Debian 10 上安装 MongoDB 6 |如何在 Debian 11/Debian 10 上安装 MongoDB 6 |如何在 Debian 11/Debian 10 上安装 MongoDB 6 |如何在 Debian 11/Debian 10 上安装 MongoDB 6 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11/Debian 10 上安装 MongoDB 6 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

NoSQL 数据库是一种数据库类型,其中信息存储在 JSON 文档中,而不是关系数据库中使用的行和列。这项技术是在 20 世纪 70 年代实施的,当时数据存储极其昂贵。在 SQL 数据库中,数据按行和列进行组织,这使得它们极其不灵活且难以修改。在 NoSQL 数据库中,开发人员不受严格的表格方法的束缚,因此能够享受灵活的模式,并可以轻松地扩展大量数据和高用户负载。

最流行的 NoSQL 数据库是 Apache Cassandra、ElasticSearch、Amazon DynamoDB、HBase、Couchbase、Redis、MongoDB 等

MongoDB 是一个跨平台、面向对象的 NoSQL 数据库,由 MongoDB Inc. 开发,并根据服务器端公共许可证获得许可。它是用C++语言实现的,同时支持32位和64位系统。 MongoDB 在需要巨大可扩展性和灵活性的应用程序中被广泛使用。

MongoDB 通过副本集提供高可用性。这通常是一组具有相同数据集的 mongod 服务。它们提供高可用性,这是所有生产部署的基础。在 MongoDB 复制中,有数据承载节点和一个可选的仲裁节点。在数据承载节点组中,只有一个被认为是主节点,其他节点被认为是次节点。主节点主要接收来自应用程序的所有写操作。从节点复制主节点的操作日志。辅助节点从主节点复制数据集。

可以通过下图来理解架构:

MongoDB 在以下领域得到广泛使用:

  • 库存和目录管理 – NoSQL 数据库提供高可用性和可预测、经济高效的水平可扩展性。这使得 MongoDB 在拥有大量在线目录的电子商务公司中非常有效。
  • 电子商务产品目录 – 组织能够通过聚合客户和产品信息来提供客户的单一视图,从而构建提高客户满意度的应用程序
  • 移动和社交网站 – MongoDB 能够极快地处理大量数据。
  • 实时分析和高速记录 – 用于需要大量高速数据记录和聚合的客户分析、实时数据集成
  • 欺诈检测和身份认证 – 使用MongoDB提供大数据量的实时分析以识别任何异常
  • 金融服务和支付
  • 内容管理系统

MongoDB 6.0的特点

最新版本MongoDB 6.0提供了许多功能,包括:

  • 改进了对事件驱动架构的支持 – MongoDB 6.0 丰富了变更流,增加了将变更流提升到新水平的功能。
  • 更多的运算符,更少的工作 – 运算符使您能够将更多的工作推送到数据库,同时花费更少的时间编写代码。
  • 从丰富的查询中获得更深入的见解 - 用户能够处理多个文档并返回计算结果。这可以帮助构建复杂的数据处理管道来提取您需要的见解。
  • 数据安全和运营效率 – 它允许用户利用自己的符合 KMIP 的密钥管理系统,在将审核事件写入磁盘之前对其进行压缩和加密。日志加密可保护事件的完整性和机密性。
  • 无缝数据同步 – 集群间同步提供了一种将数据迁移到云的简单方法,在两个 MongoDB 集群之间实现连续、单向的数据同步
  • 更具弹性的操作 – MongoDB 的副本集设计使用户能够承受并克服中断。 MongoDB 6.0 引入了对分片的改进,这是一种支持水平可扩展性的机制。

本指南提供了如何在 Debian 11/Debian 10 上安装 MongoDB 6 所需的步骤

系统要求

为了能够安装和运行 MongoDB,您需要以下 CPU 架构:

  • 对于 x86_64 微架构:

    • Intel x86_64 Sandy Bridge 或更高版本的 Core 处理器或者 Tiger Lake 或更高版本的 Celeron 或 Pentium 处理器
    • Bulldozer 或更高版本处理器的 AMD x86_64。
  • ARM64微架构

    • ARMv8.2-A 或更高版本的微架构

使用以下命令检查架构:

$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 94
model name	: Intel(R) Xeon(R) CPU E3-1275 v5 @ 3.60GHz
stepping	: 3
microcode	: 0xf0
cpu MHz		: 3600.056
cache size	: 16384 KB
.....

1.添加MongoDB 6.0存储库

MongoDB 提供两个主要版本:

  • 社区版:免费版
  • 企业版:作为 Mongo Enterprise Advanced 订阅的一部分提供。它提供先进的功能,例如磁盘加密、Kerberos 和 LDAP 支持、审核等。

在本指南中,我们将安装社区版,但由于默认存储库中未提供它,因此我们需要将存储库添加到系统中。

安装所需的工具:

sudo apt install wget curl gnupg software-properties-common apt-transport-https ca-certificates lsb-release

首先导入GPG密钥

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg

现在将 MongoDB 6.0 存储库添加到系统中。

##On Debian 11
echo "deb http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

##On Debian 10
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

添加后,更新 APT 包索引:

sudo apt update

2.安装MongoDB 6.0服务器

添加存储库后,可以使用以下命令安装 MongoDB 6.0:

sudo apt install mongodb-org

依赖树:

The following additional packages will be installed:
  mongodb-database-tools mongodb-mongosh mongodb-org-database
  mongodb-org-database-tools-extra mongodb-org-mongos
  mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
  mongodb-database-tools mongodb-mongosh mongodb-org
  mongodb-org-database mongodb-org-database-tools-extra
  mongodb-org-mongos mongodb-org-server mongodb-org-shell
  mongodb-org-tools
0 upgraded, 9 newly installed, 0 to remove and 39 not upgraded.
Need to get 134 MB of archives.
After this operation, 458 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

您还可以为每个组件安装特定版本:

sudo apt-get install -y mongodb-org=<version> mongodb-org-database=<version>  mongodb-org-server=<version>  mongodb-org-shell=<version>  mongodb-org-mongos=<version>  mongodb-org-tools=<version>

安装完成后,启动并启用该服务:

sudo systemctl enable --now mongod

验证服务是否正在运行:

$ systemctl status mongod
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-08-29 00:46:04 UTC; 3s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 2245 (mongod)
     Memory: 72.9M
        CPU: 774ms
     CGroup: /system.slice/mongod.service
             └─2245 /usr/bin/mongod --config /etc/mongod.conf

Aug 29 00:46:04 debian11 systemd[1]: Started MongoDB Database Server.
Aug 29 00:46:04 debian11 mongod[2245]: {"t":{"$date":"2023-08-29T00:46:04.173Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"-","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK == 1, o>
root@debian11:~#

检查 MongoDB 的可用版本:

$ mongod --version
db version v6.0.9
Build Info: {
    "version": "6.0.9",
    "gitVersion": "e61bf27c2f6a83fed36e5a13c008a32d563babe2",
    "openSSLVersion": "OpenSSL 1.1.1n  15 Mar 2022",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "debian11",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

3.配置MongoDB 6.0服务器

MongoDB 将其配置文件存储在/etc/mongod.conf中。您可以在该文件中进行许多配置,例如数据库路径、日志路径、监听端口、地址等。在本指南中,我们将进行以下配置:

启用密码验证

安装后,MongoDB 不会为数据库提供密码保护。这可能会造成安全威胁,因为任何人都可以访问和使用数据库。为了保护实例,您需要创建一个用户并设置密码:

访问外壳:

mongosh

创建管理员用户:

use admin
db.createUser(
{
user: "mongouser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

您将需要提供该用户的密码。设置后,退出 shell 并在配置文件中启用身份验证:

sudo vim /etc/mongod.conf

找到并取消注释安全部分,然后添加如图所示的行。

security:
    authorization: "enabled"

启用远程访问

MongoDB 默认监听 localhost,要更改此设置并使其能够监听 IP 地址,请编辑配置,如下所示:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

完成所需的更改后,保存文件并重新启动服务:

sudo systemctl restart mongod

如果启用了防火墙,请允许端口通过:

sudo ufw allow 27017

4.使用MongoDB 6.0

现在使用之前创建的管理员用户和密码访问 MongoDB shell。

$ mongosh -u mongouser
Enter password: *********
Connecting to:		mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.5.3
Using MongoDB:		6.0.0
Using Mongosh:		1.5.3

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

test>

创建数据库 MongoDB

首先,列出可用的数据库:

> show dbs
admin   132.00 KiB
config   12.00 KiB
local    72.00 KiB

要在 MongoDB 中创建数据库,只需切换到不存在的数据库即可。例如:

> use sampledb
switched to db sampledb

在 MongoDB 中创建集合

集合相当于 SQL 数据库中的表。要在 MongoDB 中创建表,请使用具有以下语法的命令:

db.userdetails.insertOne(
   {F_Name: "Computing",
    L_NAME: "ForGeeks",
    ID_NO: "124345",
     AGE: "49",
     TEL: "25465467187"
   }
)

创建后,列出可用的集合:

> show collections
userdetails

创建整体管理员

整体管理员有能力访问和使用任何数据库。例如,之前创建的用户是总体管理员。要创建另一个管理员用户,请使用以下命令:

use admin
db.createUser(
  {
    user: 'admin',
    pwd: 'AdminPassW0rd',
    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ]
  }
);

为特定数据库创建管理员

您可以为特定数据库创建管理员用户。例如:

use testdatabase
db.createUser(
  {
    user: 'testadmin',
    pwd: 'TestPassW0rd',
    roles: [ { role: 'userAdmin', db: 'testdatabase' } ]
  }
);

创建具有读写权限的用户

还可以创建对特定数据库具有读写权限的用户。例如:

use testdatabase
db.createUser(
   {
     user: 'testuser',
     pwd: 'TestPassW0rd',
     roles: [ { role: 'readWrite', db: 'testdatabase' } ]
   }
 );

列出 MongoDB 上的用户

要列出可用用户,请查询system.users集合。

use admin
db.system.users.find()

示例输出:

使用以下命令退出 shell:

> exit

5. 在 MongoDB 中使用自定义数据路径

通常,MongoDB 将其数据存储在/var/lib/mongodb中。但是,这可以更改为另一个首选数据路径。要实现此目的,请首先停止服务:

sudo systemctl stop mongod.service

使用正确的权限创建自定义数据路径:

sudo mkdir -p /data/mongo
sudo chown -R mongodb:mongodb /data/mongo

继续并将旧目录的内容复制到此新路径:

sudo cp -r /var/lib/mongodb/* /data/mongo

您可以将旧目录移动到备份文件:

sudo mv /var/lib/mongodb /var/lib/mongodb.bak

现在编辑配置文件以适应新路径:

sudo vim /etc/mongod.conf

进行以下更改:

# Where and how to store data.
storage:
  dbPath: /data/mongo
.......

保存文件,重新加载守护进程并启动服务:

sudo systemctl daemon-reload
sudo systemctl start mongod

验证服务是否正在运行:

$ systemctl status mongod
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-07-28 16:36:02 EDT; 3s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 2020 (mongod)
     Memory: 164.3M
        CPU: 737ms
     CGroup: /system.slice/mongod.service
             └─2020 /usr/bin/mongod --config /etc/mongod.conf

瞧!

结论

在本指南中,我们在 Debian 11/Debian 10 上安装了 MongoDB 6。除此之外,我们还学习了如何配置 MongoDB,以及创建用户、数据库和集合。

有兴趣了解更多吗?

  • 如何在 Debian 上安装 MongoDB 5.0
  • 如何在 Ubuntu 上安装 MongoDB 5.0
  • 在 CentOS 和 Rocky Linux 8 上安装 MongoDB Compass
©2015-2025 Norria support@alaica.com