Ubuntu 16.04 —— MongoDB 4.4 安装

零、环境

主机版本:Windows11

虚拟机版本:ubuntukylin-16.04-desktop-amd64

VMware 版本:VMware® Workstation 17 Pro

网卡:桥接模式

注:硬件版本是使用的兼容 VMware 12.X 的。

一、MongoDB 简介

MongoDB 是一个流行的开源文档数据存储和 NoSQL 数据库管理系统。MongoDB 使用面向文档的数据模型来存储数据,采用 BSON(二进制JSON)格式,每个文档代表一个实体或对象,文档中可以包含嵌套的字段和值。MongoDB 适用于处理各种数据类型,例如非结构化、分层和半结构化数据。

MongoDB 使用 JSON 风格的查询语言和可扩展的数据模型,可以轻松扩展数据库而不需要修改模式。MongoDB 的索引引擎是高效的,并且可以用来支持文本搜索和地理空间查询。MongoDB 还提供了自动故障恢复和动态负载平衡,可以在不中断服务的情况下自动管理多台服务器之间的故障和数据恢复。

除了以上核心功能外,MongoDB 还提供了副本集和分片集群的易于使用的功能,以及内置的 JavaScript 引擎,可以方便地进行数据处理和查询。MongoDB 可以用于多种应用程序,例如 Web 应用程序、内容管理和电子商务平台、游戏和广告模板等。

MongoDB 特点

  1. 面向文档的数据库管理系统:MongoDB采用文档数据模型,数据以类似于JSON的文档形式存储。每个文档可以包含多个字段和值,各个文档的结构可以相同或不同。

    扫描二维码关注公众号,回复: 15692044 查看本文章
  2. 高度可扩展性:MongoDB可以水平扩展,允许在多台服务器之间分发数据和负载,从而提高系统的性能和可扩展性。MongoDB提供了能够自动处理故障转移和数据恢复的机制,可以保证集群的高可用性。

  3. 处理非结构化数据的能力:MongoDB可以处理大量非结构化数据,比如日志数据、地理空间数据、图像数据等。

  4. 灵活的查询语言:MongoDB使用JavaScript来查询和操作数据,因此具有调试方便、易学易用的特点。MongoDB可以支持各种查询类型,包括精确查询、范围查询、复合查询和文本查询等,而且也支持聚合操作。

  5. 异步写操作:MongoDB可以快速写入大量数据,因为它使用异步写操作,在写入数据时不会阻塞客户端应用程序。这意味着在高负载情况下,MongoDB可以处理更多的写入请求。

  6. 数据备份和恢复:MongoDB可以生成快照或持久化存储数据,并允许在数据复原时回滚。

  7. 内置功能:MongoDB内置了各种功能,如文本搜索、地理空间搜索和图形处理等,可以直接使用。

MongoDB 与传统关系型数据库的区别

以下是 MongoDB 与传统关系型数据库的区别表格:

特点 MongoDB 传统关系型数据库
数据模型 文档数据模型 关系型数据模型
查询语言 JavaScript API SQL
扩展性 高可扩展性,支持水平扩展 难以水平扩展,常在单个服务器上运行
处理大数据集 更容易处理大数据集,能够处理非结构化数据 处理大型数据集相对困难
索引 MongoDB的索引具有丰富的功能 传统数据库的索引功能相对较少
事务处理 在某些版本中实现了事务处理 传统关系型数据库流行且支持事务处理
可用性 自动故障转移,支持自动数据备份和恢复 传统数据库需要手动配置任何这些备份和故障转移操作
性能 可通过异步写操作获得更高的性能 在大型数据集上性能可能较差
费用 免费,且可以自由修改源代码 需要支付一定的许可证费用,不允许自由修改源代码

总之,MongoDB 相对于传统的关系型数据库具有更高的灵活性、可扩展性和更好的性能,但是对于某些应用场景可能不太适用。因此,在选择数据库系统时,应该根据具体的应用场景来进行选择。

二、安装 MongoDB 4.4

MongoDB 在不同的 Linux 平台上会有不同的兼容性要求,所以,我去官方文档中找到了下面这张表,各位读者可以自行查找对照下面表来选择下载安装适合自己机器的 MongoDB 版本。

Platform Architecture Edition 6.0 5.0 4.4 4.2 4.0
Amazon Linux 2022 x86_64 Enterprise 6.2.0+
Amazon Linux 2022 x86_64 Community 6.2.0+
Amazon Linux V2 x86_64 Enterprise
Amazon Linux V2 x86_64 Community
Amazon Linux V1 x86_64 Enterprise
Amazon Linux V1 x86_64 Community
Debian 11 x86_64 Enterprise 5.0.8+
Debian 11 x86_64 Community 5.0.8+
Debian 10 x86_64 Enterprise 4.2.1+
Debian 10 x86_64 Community 4.2.1+
Debian 9 x86_64 Enterprise
Debian 9 x86_64 Community
RHEL/CentOS/Oracle Linux/Rocky/Alma 9.0+ x86_64 Enterprise 6.0.4+
RHEL/CentOS/Oracle Linux/Rocky/Alma 9.0+ x86_64 Community 6.0.4+
RHEL/CentOS/Oracle Linux/Rocky/Alma 8.0+ x86_64 Enterprise 4.2.1+ 4.0.14+
RHEL/CentOS/Oracle Linux/Rocky/Alma 8.0+ x86_64 Community 4.2.1+ 4.0.14+
RHEL/CentOS/Oracle Linux 7.0+ x86_64 Enterprise
RHEL/CentOS/Oracle Linux 7.0+ x86_64 Community
RHEL/CentOS/Oracle Linux 6.2+ x86_64 Enterprise
RHEL/CentOS/Oracle Linux 6.2+ x86_64 Community
SLES 15 x86_64 Enterprise 4.2.1+
SLES 15 x86_64 Community 4.2.1+
SLES 12 x86_64 Enterprise
SLES 12 x86_64 Community
Ubuntu 22.04 x86_64 Enterprise 6.0.4+
Ubuntu 22.04 x86_64 Community 6.0.4+
Ubuntu 20.04 x86_64 Enterprise
Ubuntu 20.04 x86_64 Community
Ubuntu 18.04 x86_64 Enterprise 4.0.1+
Ubuntu 18.04 x86_64 Community 4.0.1+
Ubuntu 16.04 x86_64 Enterprise
Ubuntu 16.04 x86_64 Community
Windows Server 2019 x86_64 Enterprise
Windows Server 2019 x86_64 Community
Windows 7/8/8.1 x86_64 Enterprise
Windows 7/8/8.1 x86_64 Community
Windows Server 2008R2/2012/2012R2 x86_64 Enterprise
Windows Server 2008R2/2012/2012R2 x86_64 Community
Windows 10 / Server 2016 x86_64 Enterprise
Windows 10 / Server 2016 x86_64 Community
macOS 11 x86_64 Enterprise
macOS 11 x86_64 Community
macOS 10.14+ x86_64 Enterprise
macOS 10.14+ x86_64 Community
macOS 10.13 x86_64 Enterprise
macOS 10.13 x86_64 Community
macOS 10.12 x86_64 Enterprise
macOS 10.12 x86_64 Community
macOS 11 arm64 Enterprise
macOS 11 arm64 Community
Amazon Linux 2022 arm64 Enterprise 6.2.0+
Amazon Linux 2022 arm64 Community 6.2.0+
Amazon Linux 2 arm64 Enterprise 4.4.4+ 4.2.13+
Amazon Linux 2 arm64 Community 4.4.4+ 4.2.13+
RHEL/CentOS/Rocky/Alma 8 arm64 Enterprise 4.4.4+
RHEL/CentOS/Rocky/Alma 8 arm64 Community 4.4.4+
Ubuntu 22.04 arm64 Enterprise 6.0.4+
Ubuntu 22.04 arm64 Community 6.0.4+
Ubuntu 20.04 arm64 Enterprise
Ubuntu 20.04 arm64 Community
Ubuntu 18.04 arm64 Enterprise
Ubuntu 18.04 arm64 Community
Ubuntu 16.04 arm64 Enterprise
Ubuntu 16.04 arm64 Community
RHEL/CentOS/Rocky/Alma 8 ppc64le Enterprise 4.2.7+
RHEL/CentOS/Rocky/Alma 8 ppc64le Community
RHEL/CentOS 7 ppc64le Enterprise 4.0.0 - 4.0.27
RHEL/CentOS 7 ppc64le Community
Ubuntu 18.04 ppc64le Enterprise 4.4.0 - 4.4.10 4.2.1 - 4.2.17
Ubuntu 18.04 ppc64le Community
RHEL/CentOS/Rocky/Alma 8 s390x Enterprise 5.0.9+
RHEL/CentOS/Rocky/Alma 8 s390x Community
RHEL/CentOS 7 s390x Enterprise 4.2.0 - 4.2.17 4.0.6 - 4.0.27
RHEL/CentOS 7 s390x Community 4.2.0 - 4.2.9 4.0.6 - 4.0.13
RHEL/CentOS 6 s390x Enterprise 4.2.4 - 4.2.14 4.0.0 - 4.0.24
RHEL/CentOS 6 s390x Community 4.0.0 - 4.0.13
SLES 12 s390x Enterprise 4.4.0 - 4.4.6 4.2.0 - 4.2.14 4.0.6 - 4.0.24
SLES 12 s390x Community 4.4.0 - 4.4.6 4.2.0 - 4.2.9 4.0.6 - 4.0.13
Ubuntu 18.04 s390x Enterprise 4.4.0 - 4.4.6 4.2.1 - 4.2.14 4.0.6 - 4.0.25
Ubuntu 18.04 s390x Community 4.4.0 - 4.4.6 4.2.1 - 4.2.9 4.0.6 - 4.0.13

最终我选用了 MongoDB 4.4 的版本,因为 5.0 以上的版本不支持 Ubuntu 16.04,所以矮子里面挑高个,我就选了 4.4 ,不建议选择 4.0,因为 v4.0 于2022年4月30日达到生命周期结束,不再被 MongoDB 正式支持。

离线安装 MongoDB

因为在线安装我个人认为比较麻烦,所以我在这里就选择离线安装的方式,在线安装可以直接去看后面的内容。

找到适合的版本后,我们点击进入下列链接寻找合适的版本组件进行下载

社区版下载:MongoDB Community Downloads | MongoDB

企业版下载:MongoDB Enterprise Downloads | MongoDB

我的版本就放在下面这里,是 X64 架构的笔记本,Ubuntu 16.04 版本

系统架构可以根据下面方法查看,因为都用的是虚拟机,所以我们可以在 Windows 下,按 Win + i 键,打开控制面板,如下图,中系统,选中 系统--> 系统信息

就可以看到设备规格,其中系统类型就会显示处理器的架构了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDaXmKjF-1684247980334)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230509195802150.png)]

(1)下载

下载过程一般都是出奇的简单以及枯燥,但是为了照顾到大家,这里我还是将三种方法都列一下。

1、Xftp 传输

首先我们需要在 Windows 主系统中,下载 MongoDB 的压缩包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvK0xWLn-1684247980334)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230509202735772.png)]

下载完成后打开 Xftp ,找到下载文件的地方并且打开对应虚拟机的位置(你安装包经常放的位置,避免到时候自己找不到东西),双击将需要传输的包传输过去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5ZwNO2Y-1684247980335)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230509203032731.png)]

这样便传输完毕了。

2、浏览器下载

打开自带的浏览器 Firefox,找到 MongoDB 的官网,选择 Products --> Community Server,如果是企业版的可以选择前面的 Enterprise Server

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zT0wLnyV-1684247980335)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516143350853.png)]

根据上面的表格选择对应需要下载的版本、对应的平台、下载格式,然后点击 Download 按钮。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b77IcO6A-1684247980335)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516143940477.png)]

确认自己选择下载的版本,没错就可以点击确定。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hHKGZJKu-1684247980336)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516144229866.png)]

可以在下载管理器中看到下载的进度,等待下载完成即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6gDVGZQr-1684247980336)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516144317247.png)]

下载完成后可以直接提取到想要的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bWVFnwCx-1684247980337)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516145149860.png)]

3、wget 下载

先找到下载的链接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oJ1hlfnu-1684247980337)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516150517507.png)]

输入 wget + 链接地址 + -P + 存放的目录路径 即可

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.4.22-rc2.tgz -P ~/下载/

下载完成后可以在 ~/下载/ 目录下找到下载的压缩包。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wy0XCpTS-1684247980337)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516150201437.png)]

(2)解压

下载完成后就可以在 ~/下载 目录下找到 mongodb-linux-x86_64-ubuntu1604-4.4.22-rc1.tgz 压缩包,但是只有下载完成,整个压缩包才是完整的,否则就是没有用的。然后我们输入下面命令将压缩包

sudo tar -zxf 下载/mongodb-linux-x86_64-ubuntu1604-4.4.22-rc1.tgz -C /usr/local/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPsxoKv5-1684247980338)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230514195243798.png)]

进入解压后所在的目录,然后对文件夹进行重命名,以便后面使用。

cd /usr/local/
sudo mv mongodb-linux-x86_64-ubuntu1604-4.4.22-rc1/ mongodb
ll 

在这里插入图片描述

更改属主权限,方便后续的执行。

sudo chown -R hadoop mongodb/ # 更改 mongodb 文件夹的属主。hadoop 是用户名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n8TcYl73-1684247980338)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230514195655152.png)]

(3)配置 MongoDB

创建日志文件

接下来我们将创建一个 data/db 作为数据保存目录,data/db/journal/mongodb.log 作为日志文件

cd /usr/local/mongodb/ # 进入 MongoDB 的安装目录
mkdir -p data/db/journal # 创建 data/db 作为数据目录
cd data/db/journal
touch mongodb.log  #创建 mongodb.log 作为日志文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Adhu7RVY-1684247980339)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516151704027.png)]

配置文件 mongodb.conf

输入下列命令创建配置文件

cd /usr/local/mongodb/data/ # 进入数据存储目录
vim mongodb.conf   # 目录下没有 mongodb.conf 文件时用本条命令会自动创建 mongodb.conf 文件

创建后会看见左下角显示这是一个新文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDAlVqPo-1684247980339)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516152512176.png)]

键入下面文件内容,然后保存退出。

#日志文件位置
logpath=/usr/local/mongodb/data/db/journal/mongodb.log
 
# 以追加方式写入日志
logappend=true
 
# 是否以守护进程方式运行
fork=true
 
# 默认27017
#port = 27017
 
# 数据库文件位置
dbpath=/usr/local/mongodb/data/db
 
# 启用定期记录CPU利用率和 I/O 等待
#cpu = true
 
# 是否以安全认证方式运行,默认是不认证的非安全方式
#noauth = true
#auth = true
 
# 详细记录输出
#verbose = true
 
# Inspect all client data for validity on receipt (useful for
# developing drivers)用于开发驱动程序时验证客户端请求
#objcheck = true
 
# Enable db quota management
# 启用数据库配额管理
#quota = true
# 设置oplog记录等级
# Set oplogging level where n is
#   0=off (default)
#   1=W
#   2=R
#   3=both
#   7=W+some reads
#diaglog=0
 
# Diagnostic/debugging option 动态调试项
#nocursors = true
 
# Ignore query hints 忽略查询提示
#nohints = true
# 禁用http界面,默认为localhost:28017
#nohttpinterface = true
 
# 关闭服务器端脚本,这将极大的限制功能
# Turns off server-side scripting.  This will result in greatly limited
# functionality
#noscripting = true
# 关闭扫描表,任何查询将会是扫描失败
# Turns off table scans.  Any query that would do a table scan fails.
#notablescan = true
# 关闭数据文件预分配
# Disable data file preallocation.
#noprealloc = true
# 为新数据库指定.ns文件的大小,单位:MB
# Specify .ns file size for new databases.
# nssize =
 
# Replication Options 复制选项
# in replicated mongo databases, specify the replica set name here
#replSet=setname
# maximum size in megabytes for replication operation log
#oplogSize=1024
# path to a key file storing authentication info for connections
# between replica set members
#指定存储身份验证信息的密钥文件的路径
#keyFile=/path/to/keyfile

效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jamQNobU-1684247980339)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516152621925.png)]

输入 cat 命令可以查看文件内容

cat mongodb.conf 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DnDSJJ8r-1684247980340)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516152740369.png)]

在线安装 MongoDB

导入程序包管理系统使用的公钥

在线安装会比离线安装更为复杂,需要导入程序包管理系统使用的公钥。首先输入下面命令从终端安装 gnupg 工具(如果它还不可用),curl 工具

sudo apt-get install gnupg curl -y

下载完之后,输入以下命令从中导入 MongoDB 公共 GPG 密钥

curl -fsSL https://pgp.mongodb.com/server-4.4.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-4.4.gpg \
   --dearmor

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Jrvski9-1684247980340)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215522568.png)]

为 MongoDB 创建一个列表文件

为您的 Ubuntu 版本创建列表文件 /etc/apt/sources.list.d/mongodb-org-6.0.list,在创建之前,运行 lsb_release -dc 命令,查看当前 Linux 衍生版的版本

lsb_release -dc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y73dY6DR-1684247980340)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516172708322.png)]

下面提供 Ubuntu 版本的命令:

16.04

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

18.04

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

20.04

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuEWxsy0-1684247980341)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215603038.png)]

重新加载本地包数据库

输入以下命令以重新加载本地包数据库

sudo apt-get update -y

出现下面这种就算是加载成功了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgfe2sga-1684247980341)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215834876.png)]

也有可能会遇到一些错误,比如说:

错误:1 http://archive.ubuntukylin.com:10006/ubuntukylin trusty InRelease
  无法连接上 archive.ubuntukylin.com:10006 (124.126.103.228)- connect (111: 拒绝连接)

遇上这个问题,我们需要进入 /etc/apt/sources.list.d 目录下,查看后缀为 .list 的文件,如下图有两个,我们一个个看。

cd /etc/apt/sources.list.d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zo2pzcdy-1684247980341)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215708951.png)]

使用 cat 命令,分别查看两个文件内容

cat mongodb-org-4.4.list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XDFJBKgI-1684247980342)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215738398.png)]

cat ubuntukylin.list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1XSeab6-1684247980342)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516180548611.png)]

找到对应报错的地方,使用下面命令,将文件内容进行注释。

sudo vim ubuntukylin.list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aa8FHv40-1684247980342)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516180631794.png)]

安装MongoDB包

可以选择安装 MongoDB 的最新稳定版本或 MongoDB 的特定版本,这里我们选择安装 MongoDB 的最新稳定版,输入下面命令

sudo apt-get install -y mongodb-org

出现下图的情况就可以安心等待下载完成了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tuEvuCCS-1684247980343)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516215900013.png)]

安装完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C36VUQBX-1684247980343)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516221143337.png)]

虽然可以指定任何可用的 MongoDB 版本,但 apt-get 会在新版本可用时升级包。为了防止意外升级,可以使用下面命令将软件包固定在当前安装的版本

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IFvPqoIF-1684247980343)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516221231970.png)]

三、使用 MongoDB

启动 MongoDB 服务

init 方式启动 MongoDB(在线安装测试)

这里是在线安装下测试的,但是除了一些文件的存放位置,其他命令与离线安装还是一样的。

要运行和管理 mongod 进程,您将使用操作系统的内置 init 系统。最近的 Linux 版本倾向于使用 systemd(使用 systemctl 命令),而旧版本的 Linux 倾向于使用 System V init(使用 service 命令)。
如果不确定您的平台使用哪个 init 系统,可以运行以下命令:

ps --no-headers -o comm 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KrGDjWE-1684247980344)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516221510992.png)]

输入下面命令开启 MongoDB 服务

sudo systemctl start mongod

输入 pgrep mongo -l 可以查看是否启动成功

pgrep mongo -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3GyTEpV3-1684247980344)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516221821215.png)]

如果在启动时收到类似于以下内容的错误 mongod

Failed to start mongod.service: Unit mongod.service not found.

首先运行以下命令:

sudo systemctl daemon-reload

然后再次运行上面的启动命令。

输入下面命令可以确保 MongoDB 在系统重启后自动启动

sudo systemctl enable mongod

重新启动 MongoDB

sudo systemctl restart mongod

您可以跟踪流程的状态以获取错误或重要消息 通过观察文件中的输出。/var/log/mongodb/mongod.log

进入 MongoDB Shell 模式,输入下面命令启动 MongoDB Shell 没有任何命令行选项连接到 mongod 默认在本地主机上的27017端口:

mongo

脚本方式启动 MongoDB 服务(离线安装测试)

因为在线安装没有配置文件,所以这部分就只是离线安装的环境下测试。

先进入 MongoDB 的安装目录,再用脚本文件进行启动。

cd /usr/local/mongodb
./bin/mongod -f data/mongodb.conf

成功启动如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4v18kV5Z-1684247980344)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516153054652.png)]

输入 pgrep mongo -l 可以查看是否启动成功

pgrep mongo -l

跟上面的进程号相对应,7891

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ir24vLLh-1684247980345)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516153147820.png)]

启动失败示意图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1MAU4sdK-1684247980345)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516155717090.png)]

进入 MongoDB Shell 模式

cd /usr/local/mongodb
./bin/mongo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-URetpOHs-1684247980345)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516153618011.png)]

输入exitCtrl+C退出 shell 模式

关闭 MongoDB 服务

根据需要,输入下面命令可以停止 mongod服务

sudo systemctl stop mongod

或者进入 MongoDB Shell 模式, 输入下面命令对 MongoDB 服务进行关闭。

use admin
db.shutdownServer()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CtLFwX0-1684247980346)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516154135911.png)]

使用 pgrep 命令查看 MongoDB 的进程号来判断服务是否仍在运行

pgrep mongo -l

可以发现 MongoDB 没有进程号,进而判断服务已经关闭。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7UjZWc9e-1684247980346)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516154226405.png)]

四、附记(离线安装下)

如果想在任何目录都可以启动 MongoDB 的服务,可以将 MongoDB 的执行路径添加到环境变量的 PATH 中。

输入下面命令使用 vim 编辑器打开环境变量文件

sudo vim /etc/bash.bashrc

输入下列配置项,然后保存退出

#MongoDB
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:/usr/local/mongodb/bin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9R2v5GG-1684247980346)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516155257119.png)]

重新加载环境变量

source ~/.bashrc 

再次输入 mongo,按两下 tab,就可以看见有 mongod 命令存在了,之后就可以使用 mongod 就可以打开 MongoDB 服务了,并且可以直接使用 mongo 命令进入 MongoDB Shell 模式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AmeKH51b-1684247980347)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516155502351.png)]

使用 mongod -f + [脚本文件路径] 来启动 MongoDB 服务。

mongod -f /usr/local/mongodb/data/mongodb.conf # 开启 MongoDB 服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lQl32fCv-1684247980347)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516160209195.png)]

启动 MongoDB 服务后,输入 mongo 命令就可以打开 MongoDB Shell 模式。

mongo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGk1spyZ-1684247980347)(Z:\黄志成\Data\Typora\Linux\Ubuntu\MongoDB安装.assets\image-20230516160234646.png)]

伍、写在最后

这篇文章到后面写的有点乱,因为就是在线安装跟离线安装有很多的不一样,启动的方式,日志存放的位置也有很多的不同。因为我是先做的离线安装,所以数据存放的位置和日志存放的位置和在线安装会有很多的不一样,所以这篇有很多比较乱的地方。希望各位看完也能收获一些部署的心得。

猜你喜欢

转载自blog.csdn.net/m0_68192925/article/details/130715639