在服务器上安装维护你的MongoDB数据库

介绍

MongoDB是一个免费的开源NoSQL文档数据库,在Web应用程序中经常使用。在本教程中,您将安装MongoDB,学习如何管理其服务并启用远程访问。

准备

要学习本教程,您需要:

第一步、安装MongoDB

Ubuntu的官方软件包存储库包含最新版本的MongoDB,这意味着我们可以使用apt安装必要的软件包。

首先,更新软件包列表以获得最新版本的软件库列表:

sudo apt update

现在安装MongoDB包:

sudo apt install -y mongodb

此命令将安装包含最新稳定版MongoDB的多个软件包,以及MongoDB服务器的管理工具。安装后会自动启动数据库服务器。

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

第二步、检查服务和数据库

安装过程将自动启动MongoDB,我们需要验证服务是否已启动并且数据库是否正常工作。

首先,检查服务的状态:

sudo systemctl status mongodb

您会看到如下输出:

● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
     Docs: man:mongod(1)
 Main PID: 2312 (mongod)
    Tasks: 23 (limit: 1153)
   CGroup: /system.slice/mongodb.service
           └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

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

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

执行以下命令:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

这将输出当前数据库版本,服务器地址和端口以及status命令:

MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

ok的值为1的时候表示服务器正常工作。

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

第三步、管理MongoDB服务

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

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

sudo systemctl status mongodb

您可以通过输入以下命令随时停止服务器:

sudo systemctl stop mongodb

要在启动服务器,请输入:

sudo systemctl start mongodb

您还可以使用以下命令重新启动服务器:

sudo systemctl restart mongodb

默认情况下,MongoDB会配置为自动启动服务器。如果要禁用自动启动,请输入:

sudo systemctl disable mongodb

若要再次启用它,请输入:

sudo systemctl enable mongodb

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

第四步、调整防火墙(可选)

如果您希望能够从Internet连接到MongoDB服务器,则必须允许传入连接ufw的流量。

要允许从任何地方访问27017端口上的MongoDB ,您可以使用sudo ufw allow 27017命令。但是,这样操作非常不安全,我们还是建议你按照下面的步骤来做。

在大多数情况下,只能从某些受信任的位置访问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地址。

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

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

sudo nano /etc/mongodb.conf

将服务器的IP地址添加到bindIP值:

...
logappend=true
​
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
​
...

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

sudo systemctl restart mongodb

MongoDB现在将侦听远程连接,且已经按照您的防火墙配置。如何更简单的配置防火墙呢?您可以按照我们腾讯云安全组配置了解如何配置常规用户帐户并为您的服务器设置防火墙。


参考文献:《How to Install MongoDB on Ubuntu 18.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

linux创建目录mkdir命令(5)

linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 1.命令格式: m...

3679
来自专栏上善若水

S005SELinux(SEAndroid)的实际文件组成无标题文章

SEAndroid 是将SELinux 移植到Android 上的产物,可以看成SELinux 辅以一套适用于Android 的策略。

1755
来自专栏前端知识分享

第106天:Ajax中同步请求和异步请求

用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误又要重新填写!

1312
来自专栏我是攻城师

关于elaticsearch中更新数据的几种方式

3465
来自专栏赵俊的Java专栏

Hexo 扩展 --- 优雅的备份 Hexo 博客

4833
来自专栏LanceToBigData

linux(十四)之linux NFS服务管理

学到这里差不多就结束了linux的基础学习了,其实linux的内容并不难,我们要经常的反复的去操作它,多多和它去联络感情才能很好的掌握这个linux。 加油!今...

37210
来自专栏云计算教程系列

Nginx的安装和配置疑难解答

Nginx是一个免费的开源Web服务器,用于托管各种规模的网站和应用程序。该软件以其对内存资源的低影响,高可扩展性以及可提供安全,预测性能的模块化事件驱动架构而...

2575
来自专栏大数据和云计算技术

MongoDB系列11:Munin监控MongoDB

Munin是一个网络资源监控工具,可以帮助分析资源趋势。默认提供了大量的分析图形。以下讲述如何设置MongoDB的Munin监控插件。

1573
来自专栏jmeter高手高高手

JProfiler简明使用教程

 JProfile是一款性能瓶颈分析工具,监控粒度可以细化到某一个类包,堪称神器!我安装了一下9.11的版本,并简单说说使用方法。

1K3
来自专栏云计算教程系列

三种方法在CVM安装Node.js

Node.js是一个用于通用编程的JavaScript平台,允许用户快速构建网络应用程序。通过在前端和后端利用JavaScript,Node.js使开发更加一致...

1965

扫码关注云+社区