如何在Ubuntu 18.04上安装MongoDB

在本文中,我们将解释如何在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-servermongodb-server-core

$ sudo apt install mongodb

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

$ sudo systemctl status mongodb
检查Mongodb状态

检查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 MechanismSCRAM )身份验证机制。 使用SCRAM ,MongoDB根据用户的名称,密码和身份验证数据库(创建用户的数据库,以及用户名称,用于识别用户)验证提供的用户凭据。

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

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

> use admin 
> db.createUser({user:"root", pwd:"[email protected]!#@%$admin1", roles:[{role:"root", db:"admin"}]})
创建MongoDB Root用户

创建MongoDB Root用户

现在退出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
在MongoDB中启用身份验证

在MongoDB中启用身份验证

保存文件并退出。

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

$ systemctl daemon-reload
$ sudo systemctl restart mongodb	
$ sudo systemctl status mongodb	
验证MongoDB身份验证

验证MongoDB身份验证

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

$ mongo -u "root" -p --authenticationDatabase "admin"
以root用户身份连接到MongoDB

以root用户身份连接到MongoDB

注意 :建议不要在命令行中输入密码,因为密码将存储在shell历史文件中 ,以后可供攻击者查看。

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

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


分享按钮