MongoDB是一个免费的开源NoSQL文档数据库,在现代Web应用程序中常用。在本教程中,您将安装MongoDB,管理其服务,并可选择启用远程访问。要遵循这个......

介绍

MongoDB是一个免费的开源NoSQL文档数据库,在现代Web应用程序中常用。

在本教程中,您将安装MongoDB,管理其服务,并可选择启用远程访问。

先决条件

要学习本教程,您需要按照此初始服务器设置教程设置一个Debian 9服务器,包括启用了sudo的非root用户和防火墙。

第1步 - 安装MongoDB

Debian 9的官方软件包存储库包含稍微过时的MongoDB版本,这意味着我们将从官方的MongoDB repo安装。

首先,我们需要使用apt-key add MongoDB签名密钥。 在执行此操作之前,我们需要确保安装了curl命令:

sudo apt install curl
接下来我们下载密钥并将其传递给apt-key add :
curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -
接下来我们将为MongoDB repo创建一个源列表,因此apt知道从哪里下载。 首先在文本编辑器中打开源列表文件:
sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list
这将打开一个新的空白文件。 粘贴如下:
/etc/apt/sources.list.d/mongodb-org-4.0.list
deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

保存并关闭该文件,然后更新包缓存:

sudo apt update
安装mongodb-org软件包以安装服务器和一些支持工具:
sudo apt-get install mongodb-org
最后,启用并启动mongod服务以使MongoDB数据库运行:
sudo systemctl enable mongod
sudo systemctl start mongod

我们现在已经安装并启动了最新的稳定版MongoDB,以及MongoDB服务器的有用管理工具。

接下来,让我们验证服务器是否正在运行并正常运行。

第2步 - 检查服务和数据库

我们在上一步中启动了MongoDB服务,现在让我们验证它是否已启动且数据库是否正常工作。

首先,检查服务的状态:

sudo systemctl status mongod
你会看到这个输出:
Output● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 16:59:56 UTC; 3s ago
Docs: https://docs.mongodb.org/manual
Main PID: 4321 (mongod)
Tasks: 26
CGroup: /system.slice/mongod.service
└─4321 /usr/bin/mongod --config /etc/mongod.conf

根据systemd ,MongoDB服务器已启动并运行。

我们可以通过实际连接到数据库服务器并执行诊断命令来进一步验证这一点

执行以下命令:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'
这将输出当前数据库版本,服务器地址和端口以及status命令的输出:
OutputMongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}

响应中ok字段的值为1表示服务器正常工作。

接下来,我们将了解如何管理服务器实例。

第3步 - 管理MongoDB服务

MongoDB作为systemd服务安装,这意味着您可以使用标准systemd命令以及Ubuntu中的所有其他系统服务来管理它。

要验证服务的状态,请键入:

sudo systemctl status mongod
您可以通过键入以下命令随时停止服务器:
sudo systemctl stop mongod
要在服务器停止时启动它,请键入:
sudo systemctl start mongod
您还可以使用以下命令重新启动服务器:
sudo systemctl restart mongod
在上一步中,我们启用了MongoDB以自动启动服务器。 如果要禁用自动启动,请键入:
sudo systemctl disable mongod
再次启用它也很容易。 为此,请使用:
sudo systemctl enable mongod

接下来,让我们调整MongoDB安装的防火墙设置。

第4步 - 调整防火墙(可选)

假设您已按照初始服务器设置教程说明在服务器上启用防火墙,则无法从Internet访问MongoDB服务器。

如果您打算仅在本地使用MongoDB服务器与在同一服务器上运行的应用程序,则这是推荐的安全设置。 但是,如果您希望能够从Internet连接到MongoDB服务器,则必须允许ufw的传入连接。

要允许从任何地方访问默认端口27017上的MongoDB,可以使用sudo ufw allow 27017 。 但是,在默认安装上启用对MongoDB服务器的Internet访问可以使任何人无限制地访问数据库服务器及其数据。

在大多数情况下,只能从某些受信任的位置访问MongoDB,例如托管应用程序的另一台服务器。 要完成此任务,您可以允许访问MongoDB的默认端口,同时指定将明确允许连接的另一台服务器的IP地址:

sudo ufw allow from your_other_server_ip/32 to any port 27017
您可以使用ufw验证防火墙设置的更改:
sudo ufw status

您应该看到输出中允许的端口27017流量:

产量
Status: active

To                         Action      From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)

如果您决定仅允许某个IP地址连接到MongoDB服务器,则将在输出中列出允许位置的IP地址而不是Anywhere 。

您可以在UFW Essentials中找到更高级的防火墙设置,以限制对服务的访问:通用防火墙规则和命令 。

即使端口是打开的,MongoDB当前只监听本地地址127.0.0.1 。 要允许远程连接,请将服务器的可公共路由IP地址添加到mongod.conf文件中。

在编辑器中打开MongoDB配置文件:

sudo nano /etc/mongod.conf
将服务器的IP地址添加到bindIP值:
/etc/mongod.conf
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,your_server_ip
. . .

请务必在现有IP地址和您添加的IP地址之间放置逗号。

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

sudo systemctl restart mongod
MongoDB现在正在监听远程连接,但任何人都可以访问它。 按照如何在Ubuntu 16.04上安装和保护MongoDB的第2部分添加管理用户并进一步锁定。

结论

您可以在这些DigitalOcean社区文章中找到有关如何配置和使用MongoDB的更深入的教程。 MongoDB官方文档也是MongoDB提供的可能性的绝佳资源。

参考https://www.howtoing.com/how-to-install-mongodb-on-debian-9

在debian9上安装mongodb的更多相关文章

  1. 在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  2. 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2

    MongoDB(名称取自"huMONGOus")是一个有着全面灵活的索引支持和丰富的查询的数据库.MongoDB通过GridFS提供强大的媒体存储.点击这里获取MongoDB的更多 ...

  3. Ubuntu上安装MongoDB(译)

    add by zhj:直接从第四步开始就可以了,而且安装好MongoDB后会自动启动的,不必自己去执行启动命令 原文:https://docs.mongodb.com/manual/tutorial/ ...

  4. 在Windows上安装MongoDB

    原文官方文档:https://docs.mongodb.org/v2.6/tutorial/install-mongodb-on-windows/ 基于版本:MongoDB 2.6 概览 通过这个示例 ...

  5. 在 Ubuntu 上安装 MongoDB

    在 Ubuntu 上安装 MongoDB 运行下列命令,导入 MongoDB 公开 GPG 键: sudo apt-key adv --keyserver hkp://keyserver.ubuntu ...

  6. Ubuntu 12.04上安装 MongoDB并运行

    Ubuntu 12.04上安装 MongoDB并运行 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在Terminal输入 sudo apt-key ...

  7. window上安装 MongoDB 及其 PHP扩展

    window上安装 MongoDB 及其 PHP扩展   工具/原料   window MongoDB MongoDB 方法/步骤     MongoDB 下载 MongoDB提供了可用于32位和64 ...

  8. (转)在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  9. Linux上安装MongoDB

    使用本教程使用.rpm 软件包在红帽企业Linux或CentOS Linux版本6和7上安装MongoDB Community Edition . 平台支持 本安装指南仅支持64位系统.详细信息请参见 ...

随机推荐

  1. 【BZOJ】1693: [Usaco2007 Demo]Asteroids(匈牙利)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1693 裸匈牙利.. #include <cstdio> #include <cst ...

  2. VC++ 监视文件(夹)

    参考:http://www.cnblogs.com/fangkm/archive/2009/03/31/1426526.html WinFileSystemMonitor.h  C++ Code  1 ...

  3. 编译OSG_FBX插件

    安装FBX的SDK,例如C:\Program Files\Autodesk\FBX\FBX SDK\2017.1\ 在CMake配置lib库路径的时候,使用 C:\Program Files\Auto ...

  4. 关于recycler遇到的问题

    1.//设置recyclerView不能点击myLayoutManager.setScrollEnabled(false);class MyLayoutManager extends LinearLa ...

  5. IOS7开发~新UI学起(二)

    本文转载至 http://blog.csdn.net/lizhongfu2013/article/details/9133281 1.UINavigationBar: NSDictionary* at ...

  6. 5个基于Linux命令行的文件下载和网站浏览工具

    导读 命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具;命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大.Linux Shell支持多种不同类型的网络 ...

  7. boost::lexical_cast

    boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"转换成整数123,代码如下: "; int a = lexica ...

  8. 微软笔试题-highways

    题目大意 一条单向的高速公路上有N辆车,在0时刻,每辆车分别在起点A[0],A[1]....处开始从北向南出发,每辆车有个终点B[0],B[1]....且每辆车有个限制速度 V[0],V[1]... ...

  9. CSS解决图片缩小不变形

    我会在图片上加: <img style="max-width:80px;max-height:80px;"> 限制其最大宽度和高度

  10. angular 封装公共方法

    angular封装公共方法到service中间件,节省开发时间 layer.service.ts openAlert(callback) {// 传递回调函数 const dialogRef = th ...