网站搜索

如何在 Ubuntu 18.04 上安装 MongoDB


MongoDB 是一个开源的现代文档数据库管理系统,旨在实现高性能数据持久化、高可用性以及自动扩展,基于 最先进的技术NoSQL。在MongoDB下,记录就是一个文档,它是由字段和值对组成的数据结构(MongoDB文档相当于JSON对象)。

由于它提供了高性能和出色的可扩展性功能,因此它被用于构建需要强大、关键任务和高可用性数据库的现代应用程序。

在本文中,我们将解释如何在 Ubuntu 18.04 上安装 MongoDB、管理其服务以及设置基本身份验证。

重要:您应该注意,MongoDB 的开发人员仅提供64 位 LTS(长期支持)Ubuntu 版本的软件包,例如14.04 LTS(可信)、16.04 LTS(xenial)等。

另请阅读:如何在 Ubuntu 16.04/14.04 LTS 上安装 MongoDB

步骤1:在Ubuntu 18.04上安装MongoDB

1.Ubuntu的官方软件包存储库附带了最新版本的MongoDB,并且可以使用APT包管理器轻松安装。

首先更新系统软件包缓存以获得最新版本的存储库列表。

sudo apt update

2. 接下来,安装 MongoDB 软件包,其中包括其他几个软件包,例如 mongo-toolsmongodb-clientsmongodb-server<mongodb-server-core

sudo apt install mongodb

3.成功安装后,MongoDB服务将通过systemd自动启动,并且该进程侦听端口27017。您可以使用 systemctl 命令验证其状态,如下所示。

sudo systemctl status mongodb

第2步:管理MongoDB服务

4. MongoDB 安装作为 systemd 服务提供,可以通过标准 systemd 命令轻松管理,如图所示。

要停止运行 MongoDB 服务,请运行以下命令。

sudo systemctl stop mongodb	

要启动 MongoDB 服务,请键入以下命令。

sudo systemctl start mongodb

要重新启动 MongoDB 服务,请键入以下命令。

sudo systemctl restart mongodb	

要禁用自动启动的 MongoDB 服务,请键入以下命令。

sudo systemctl disable mongodb	

要再次启用 MongoDB 服务,请键入以下命令。

sudo systemctl enable mongodb	

步骤 3:在防火墙上启用远程 MongoDB 访问

5. 默认情况下,MongoDB 在端口 27017 上运行,以允许从您可以使用的任何地方进行访问。

sudo ufw allow 27017

但是,如果能够从任何地方访问MongoDB,就可以不受限制地访问数据库数据。因此,最好使用以下命令将特定 IP 地址位置的访问权限授予默认 MongoDB 端口。

sudo ufw allow from your_server_IP/32 to any port 27017 
sudo ufw status

6. 默认情况下,端口 27017 仅侦听本地地址 127.0.0.1。要允许远程 MongoDB 连接,您需要将服务器 IP 地址添加到 /etc/mongodb.conf 配置文件中,如图所示。

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

保存文件,退出编辑器,然后重新启动 MongoDB。

sudo systemctl restart mongodb

步骤4:创建MongoDB数据库根用户和密码

7. 默认情况下,MongoDB 禁用用户身份验证,因此启动时没有访问控制。要启动 mongo shell,请运行以下命令。

mongo 

8.连接到mongo shell后,您可以使用以下命令列出所有可用的数据库。

> show dbs

9. 在 MongoDB 部署上启用访问控制以强制执行身份验证;要求用户每次连接到数据库服务器时都必须识别自己的身份。

MongoDB 默认使用Salted Challenge Response Authentication Mechanism (SCRAM) 身份验证机制。使用SCRAM,MongoDB 根据用户名、密码和身份验证数据库(创建用户的数据库与用户名一起用于识别用户)来验证提供的用户凭据。

您需要在admin数据库中创建一个用户管理员(类似于MySQL/MariaDB下的root用户)。该用户可以管理用户和角色,例如创建用户、授予或撤销用户的角色以及创建或修改自定义角色。

首先切换到admin数据库,然后使用以下命令创建root用户

> use admin 
> db.createUser({user:"root", pwd:"=@!#@%$admin1", roles:[{role:"root", db:"admin"}]})

现在退出 mongo shell 以启用身份验证,如下所述。

10. mongodb 实例在没有 --auth 命令行选项的情况下启动。您需要通过编辑 /lib/systemd/system/mongod.service 文件来启用用户身份验证,首先打开该文件进行编辑,如下所示。

sudo vim /lib/systemd/system/mongodb.service 

[Service]配置部分下,找到参数ExecStart

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

将其更改为以下内容:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

保存文件并退出。

11. 8. 更改配置文件后,运行“systemctl daemon-reload”重新加载单元并重新启动 MongoDB 服务并检查其状态,如下所示。

systemctl daemon-reload
sudo systemctl restart mongodb	
sudo systemctl status mongodb	

12. 现在,当您尝试连接到 mongodb 时,您必须将自己验证为 MongoDB 用户。例如:

mongo -u "root" -p --authenticationDatabase "admin"

注意:不建议在命令行中输入密码,因为它会存储在 shell 历史文件中,稍后可能会被攻击者查看。

就这样! MongoDB 是一个开源的现代 No-SQL 数据库管理系统,提供高性能、高可用性和自动扩展功能。

在本文中,我们解释了如何在 Ubuntu 18.04 中安装和开始使用 MongoDB。如果您有任何疑问,请使用下面的评论表与我们联系。