如何在 Ubuntu 18.04 上安装 MongoDB

什么是 MongoDB?

MongoDB 是一个文档化的数据库管理系统,不需要表方案的描述。 它是一个 example NoSQL 系统(NoSQL – 这是一种通过灵活的数据模型实现可扩展数据库存储的方法),MongoDB 使用类似 JSON 的文档和数据库方案。 它通常与大数据一起用于网络开发。 MongoDB 是用 C++、C 和 JavaScript 编写的。 它也是跨平台的,这让我们可以在多个平台上部署它。

MongoDB 相对于 SQL 关系型数据库的优势之一是任何关系型数据库(例如 MySQL)都有一个标准方案来显示表的数量和它们之间的连接,而 MongoDB 中的表之间没有这种连接。

MongoDB 有一个集合或一组文档。 该文档是键值对的集合。 文档具有动态方案。 动态方案意味着来自同一集合的文档不必具有相同的字段或结构集; 此外,文档的公共字段可以包括各种类型的数据。

本文将提供有关 MongoDB 的更多信息,它是什么,以及它可以在哪里使用,还会介绍它的优点并了解如何安装它。

MongoDB的优势

  • 缺乏架构
  • 基于各种文档的集合
  • 每个对象的清晰结构
  • 高度可扩展
  • 内部存储器用于存储数据,这让我们可以更快地获取数据。
  • 数据存储为 JSON 对象。
  • MongoDB 支持基于文档的查询

MongoDB 用例

  • 事件的存储
  • 内容和文件管理
  • 移动应用数据库
  • 游戏数据库
  • 存储监控和传感器数据
  • 网页数据的存储

MongoDB 的管理工具

  • 蒙哥 – 交互式管理外壳
  • mongostat – 命令行工具
  • 蒙戈托普 – 用于监控
  • 蒙哥进口 蒙哥出口 – 从和到 JSON 的导出和导入工具
  • mongodump mongorestore – 创建备份副本并从中恢复数据库的工具

先决条件

  • 一个 Ubuntu 18.04 服务器
  • 成为根用户
  • 进入 sudo 如果不是root用户

在 Ubuntu 上安装

首先,让我们从更新我们的 Ubuntu 服务器开始。

root@host:~# apt update && apt -y upgrade
Hit:1 https://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 https://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 https://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 https://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@host:~#

在撰写本文时,MongoDB 3.6 在 Ubuntu 的官方存储库中。 我们可以通过运行以下命令来检查。

root@host:~# apt-cache show mongodb | grep -i version
Version: 1:3.6.3-0ubuntu1.1
Version: 1:3.6.3-0ubuntu1
root@host:~#

最新版本

但是,MongoDB 最新的官方稳定版本是 4.4。 要安装和使用最新的稳定版本,我们需要将 MongoDB 包的特殊存储库引入 apt 存储库。 我们将从导入 MongoDB 最新稳定版本的 GPG 密钥开始。

 root@host:~# curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
 OK
 root@host:~# 

如果版本发生了变化,我们需要添加另一个密钥,需要的密钥在 MongoDB 密钥的官方服务器上找到。 您可以使用 .asc 延期。 这是 关联 用于该文件。

我们使用了 curl 工具——用于传输数据的命令行工具; 它通常用于许多操作系统。

让我们检查是否正确添加了密钥,运行以下命令:

root@host:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26]
      2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
uid [ unknown] MongoDB 4.4 Release Signing Key <[email protected]>

root@host:~#

下载 MongoDB

现在,我们需要使用以下命令将包安装程序指向要下载和安装的 MongoDB 包的位置:

root@host:~# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse
root@host:~#

运行更新

接下来,我们将更新包管理器,使新信息生效,并且apt可以下载和安装MongoDB。

root@host:~# apt update
Hit:1 https://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 https://us.archive.ubuntu.com/ubuntu bionic InRelease
Get:3 https://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 https://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Ign:5 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 InRelease
Get:6 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 Release [5,391 B]
Get:7 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 Release.gpg [801 B]
Get:8 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse arm64 Packages [4,332 B]
Get:9 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 Packages [6,074 B]
Fetched 180 kB in 2s (101 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@host:~#

安装

现在我们可以使用以下命令安装 MongoDB。

root@host:~# apt install mongodb-org -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  mongodb-database-tools 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-org mongodb-org-database-tools-extra mongodb-org-mongos
  mongodb-org-server mongodb-org-shell mongodb-org-tools
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 104 MB of archives.
After this operation, 200 MB of additional disk space will be used.
Get:1 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-database-tools amd64 100.2.1 [54.5 MB]
Get:2 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-shell amd64 4.4.1 [13.2 MB]
Get:3 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-server amd64 4.4.1 [20.3 MB]
Get:4 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-mongos amd64 4.4.1 [15.7 MB]
Get:5 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-database-tools-extra amd64 4.4.1 [5,608 B]
Get:6 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-tools amd64 4.4.1 [2,892 B]
Get:7 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org amd64 4.4.1 [3,520 B]
Fetched 104 MB in 10s (10.4 MB/s)
Selecting previously unselected package mongodb-database-tools.
(Reading database ... 105638 files and directories currently installed.)
Preparing to unpack .../0-mongodb-database-tools_100.2.1_amd64.deb ...
Unpacking mongodb-database-tools (100.2.1) ...
Selecting previously unselected package mongodb-org-shell.
Preparing to unpack .../1-mongodb-org-shell_4.4.1_amd64.deb ...
Unpacking mongodb-org-shell (4.4.1) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../2-mongodb-org-server_4.4.1_amd64.deb ...
Unpacking mongodb-org-server (4.4.1) ...
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../3-mongodb-org-mongos_4.4.1_amd64.deb ...
Unpacking mongodb-org-mongos (4.4.1) ...
Selecting previously unselected package mongodb-org-database-tools-extra.
Preparing to unpack .../4-mongodb-org-database-tools-extra_4.4.1_amd64.deb ...
Unpacking mongodb-org-database-tools-extra (4.4.1) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../5-mongodb-org-tools_4.4.1_amd64.deb ...
Unpacking mongodb-org-tools (4.4.1) ...
Selecting previously unselected package mongodb-org.
Preparing to unpack .../6-mongodb-org_4.4.1_amd64.deb ...
Unpacking mongodb-org (4.4.1) ...
Setting up mongodb-org-shell (4.4.1) ...
Setting up mongodb-org-database-tools-extra (4.4.1) ...
Setting up mongodb-database-tools (100.2.1) ...
Setting up mongodb-org-mongos (4.4.1) ...
Setting up mongodb-org-tools (4.4.1) ...
Setting up mongodb-org-server (4.4.1) ...
Adding system user `mongodb’ (UID 111) ...
Adding new user `mongodb' (UID 111) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb’ (GID 117) ...
Done.
Adding user `mongodb’ to group `mongodb’...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org (4.4.1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
root@host:~# 

验证安装

接下来,让我们使用 版本 旗帜。

root@host:~# mongod --version
db version v4.4.1
Build Info: {
    "version": "4.4.1",
    "gitVersion": "ad91a93a5a31e175f5cbf8c69561e788bbc55ce1",
    "openSSLVersion": "OpenSSL 1.1.1 11 Sep 2018",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu1804",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
root@host:~#

配置 MongoDB

我们已经安装了 MongoDB,但仍需要对其进行配置才能正常工作。 为此,我们需要配置 systemd 以自动启动 MongoDB 以在后台运行。 让我们跑 系统控制 命令来启动 MongoDB 服务。

root@host:~# systemctl start mongod.service
root@host:~#

检查状态

现在,让我们检查一下 MongoDB 的状态

root@host:~# systemctl status mongod
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-11-16 14:55:31 UTC; 35s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 12274 (mongod)
   CGroup: /system.slice/mongod.service
           └─12274 /usr/bin/mongod --config /etc/mongod.conf

Nov 16 14:55:31 host systemd[1]: Started MongoDB Database Server.
root@host:~# 

启用服务

由于该服务正在运行,让我们让它在服务器重新启动后启动。

root@host:~# systemctl enable mongod
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
root@host:~#

运行诊断

现在让我们通过连接到 MongoDB 并运行诊断命令来验证我们的设置。 此命令还将输入服务器地址和端口:

root@host:~# mongo --eval 'db.runCommand({ connectionStatus: 1 })'
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("6c138394-e3a4-43fb-9b56-c3e3720a228d") }
MongoDB server version: 4.4.1
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}
root@host:~#

因为我们的命令返回状态“ok”: 1 – 这意味着 MongoDB 的安装已成功完成,可以开始工作了。 请记住,MongoDB 使用端口 27017 和本地地址 127.0.0.1。

MongoDB 命令

了解一些管理 MongoDB 的命令也很重要:

systemctl status mongod - shows the status of MongoDB;

systemctl stop mongod - stops MongoDB;

systemctl start mongod - starts MongoDB; 

systemctl restart mongod - restarts MongoDB;

systemctl disable mongod - prevents MongoDB from starting automatically; 

systemctl enable mongod - enables MongoDB to start automatically.

创建数据库

接下来,让我们创建一个数据库。 首先,我们需要使用以下命令切换到 mongo shell。

root@host:~# mongo --shell
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("8ff0cc20-9008-43b1-9942-ba256b3ca914") }
MongoDB server version: 4.4.1
type "help" for help
Welcome to the MongoDB shell.
For interactive help, type “help.”
For more comprehensive documentation, see
        https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
        https://community.mongodb.com
---
The server generated these startup warnings when booting:
        2020-11-16T14:55:31.459+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See https://dochub.mongodb.org/core/prodnotes-filesystem
        2020-11-16T14:55:31.865+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB’s free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc.).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

并运行 采用 命令,我们将创建一个数据库,BYNSSTestDB:


switched to db BYNSSTestDB
>
> use BYNSSTestDB

“切换到”意味着数据库已创建。 要获取当前数据库的名称, D b 使用命令。

> db
BYNSSTestDB
>

列出数据库

要获取所有数据库的列表, 显示数据库 应该使用命令。

> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>

插入记录

如我们所见,我们的数据库不在列表中。 要在那里看到它,我们需要在新数据库中至少创建一条记录。 我们可以通过运行 插入 命令。 此命令将记录添加到 MongoDB 数据库。

db.BYNSSTestDB.insert({“name”:”Katherine“})

> db.BYNSSTestDB.insert({"name":"Katherine"})
WriteResult({ "nInserted" : 1 })
>

重新列出数据库

现在让我们再次检查数据库列表。

> show dbs
admin 0.000GB
config 0.000GB
BYNSSTestDB 0.000GB
local 0.000GB
>

完毕! 数据库创建成功。

结论

在本文中,我们提供了有关 MongoDB、其优势和用途以及主要命令行工具的信息。 此外,我们还学习了如何添加存储库、下载和安装最新版本; 配置服务的启动。

学到更多

我们以成为 Hosting™ 中最有帮助的人而自豪!

我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们对多种网络托管技术有着深入的了解,尤其是本文中讨论的技术。

如果您对此信息有任何疑问,我们将随时为您解答与本文相关问题的任何询问,每天 24 小时、每周 7 天、每年 365 天。

如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud私有父服务器, 托管 Cloud 服务器或专用服务器所有者,并且您对执行概述的任何步骤感到不舒服,可以通过电话@800.580.4985 联系我们, 聊天 或支持票以帮助您完成此过程。