前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Debian 9上安装MongoDB

如何在Debian 9上安装MongoDB

原创
作者头像
藕丝空间
修改2018-11-05 17:53:34
5K0
修改2018-11-05 17:53:34
举报
文章被收录于专栏:云计算教程系列

介绍

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

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

准备

要学习本教程,您需要

  • 按照此初始服务器设置教程设置一个Debian 9服务器,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 一个启用了sudo的非root用户。
  • 启用防火墙。如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。

第1步 - 安装MongoDB

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

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

代码语言:javascript
复制
sudo apt install curl

接下来我们下载密钥并将其传递给apt-key add

代码语言:javascript
复制
curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -

接下来我们将为MongoDB repo创建一个源列表,因此apt知道从哪里下载。首先在文本编辑器中打开源列表文件:

代码语言:javascript
复制
sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

这将打开一个新的空白文件。粘贴如下:

代码语言:javascript
复制
deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

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

代码语言:javascript
复制
sudo apt update

安装mongodb-org软件包以安装服务器和一些支持工具:

代码语言:javascript
复制
sudo apt-get install mongodb-org

最后,启用并启动mongod服务以使MongoDB数据库运行:

代码语言:javascript
复制
sudo systemctl enable mongod
sudo systemctl start mongod

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

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

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

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

首先,检查服务的状态:

代码语言:javascript
复制
sudo systemctl status mongod

你会看到这个输出:

代码语言:javascript
复制
● 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服务器已启动并运行。

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

执行以下命令:

代码语言:javascript
复制
mongo --eval 'db.runCommand({ connectionStatus: 1 })'

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

代码语言:javascript
复制
MongoDB 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中的所有其他系统服务来管理它。

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

代码语言:javascript
复制
sudo systemctl status mongod

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

代码语言:javascript
复制
sudo systemctl stop mongod

要在服务器停止时启动它,请键入:

代码语言:javascript
复制
sudo systemctl start mongod

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

代码语言:javascript
复制
sudo systemctl restart mongod

在上一步中,我们启用了MongoDB以自动启动服务器。如果要禁用自动启动,请键入:

代码语言:javascript
复制
sudo systemctl disable mongod

再次启用它也很容易。为此,请使用:

代码语言:javascript
复制
sudo systemctl enable mongod

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

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

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

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

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

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

代码语言:javascript
复制
sudo ufw allow from your_other_server_ip/32 to any port 27017  

您可以使用ufw命令验证防火墙设置的更改:

代码语言:javascript
复制
sudo ufw status

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

代码语言:javascript
复制
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

您可以进行更高级的防火墙设置,以限制对服务的访问。

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

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

代码语言:javascript
复制
sudo nano /etc/mongod.conf

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

代码语言:javascript
复制
. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,your_server_ip
. . .

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

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

代码语言:javascript
复制
sudo systemctl restart mongod

MongoDB现在正在侦听远程连接,但任何人都可以访问它。您可以添加管理用户并进一步锁定。

结论

您现在已经安装了MongoDB,MongoDB官方文档是MongoDB提供的可能性的绝佳资源。

想要了解更多关于安装MongoDB的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How to Install MongoDB on Debian 9》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第1步 - 安装MongoDB
  • 第2步 - 检查服务和数据库
  • 第3步 - 管理MongoDB服务
  • 第4步 - 调整防火墙(可选)
  • 结论
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档