专栏首页云计算教程系列如何在Ubuntu 16.04上安装MongoDB
原创

如何在Ubuntu 16.04上安装MongoDB

介绍

MongoDB是一个免费的开源NoSQL文档数据库,在现代Web应用程序中常用。本教程将帮助您在服务器上为生产应用程序环境设置MongoDB。

准备

要学习本教程,您需要:

一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

第1步 - 添加MongoDB存储库

MongoDB已包含在Ubuntu软件包存储库中,但官方MongoDB存储库提供了最新版本,是推荐的软件安装方式。在此步骤中,我们将此官方存储库添加到我们的服务器。

Ubuntu通过验证它们是否使用GPG密钥签名来确保软件包的真实性,因此我们首先必须将它们的密钥导入官方MongoDB存储库。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

成功导入密钥后,您将看到:

gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

接下来,我们必须添加MongoDB存储库详细信息,以便apt知道从哪里下载软件包。

发出以下命令为MongoDB创建列表文件。

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

添加存储库详细信息后,我们需要更新软件包列表。

sudo apt-get update

第2步 - 安装和验证MongoDB

现在我们可以自己安装MongoDB包。

sudo apt-get install -y mongodb-org

此命令将安装包含最新稳定版MongoDB的多个软件包以及MongoDB服务器的有用管理工具。

接下来,用systemctl启动MongoDB 。

sudo systemctl start mongod

您还可以使用systemctl检查服务是否已正确启动。

sudo systemctl status mongod
● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
 Main PID: 4093 (mongod)
    Tasks: 16 (limit: 512)
   Memory: 47.1M
      CPU: 1.224s
   CGroup: /system.slice/mongodb.service
           └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

最后一步是在系统启动时启用MongoDB。

sudo systemctl enable mongod

MongoDB服务器现已配置并运行,您可以使用该systemctl命令管理MongoDB服务(例如sudo systemctl stop mongodsudo systemctl start mongod)。

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

假设您已在服务器上启用防火墙,则无法从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允许的端口流量。如果您决定只允许某个IP地址连接到MongoDB服务器,则将在输出中列出允许位置的IP地址而不是Anywhere

Status: active
​
To                         Action      From
--                         ------      ----
27017                      ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
27017 (v6)                 ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

结论

您已经成功在Ubuntu 16.04上成功安装了MongoDB了。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在CentOS 7上使用Linux审计系统

    在Linux审核系统可以帮助系统管理员创建一个审计跟踪,日志服务器上的每一个动作。我们可以通过检查审计日志文件来跟踪与安全相关的事件,将事件记录在日志文件中,以...

    何处惹尘埃
  • 如何在Ubuntu 14.04上使用Corosync,Pacemaker和浮动IP创建高可用性HAProxy设置

    本教程将向您展示如何在Ubuntu 14.04上创建高可用性HAProxy负载均衡器设置,并支持浮动IP和Corosync / Pacemaker集群堆栈。HA...

    何处惹尘埃
  • 如何在Ubuntu上安装Neo4J

    图表是由边连接的一组顶点。在数据库领域,图形是一组项目,每个项目与数据集中的另一个项目具有任何类型的关系。

    何处惹尘埃
  • 互联网视频直播/点播流媒体服务器使用http和rtmp做点播时有什么区别?

    现在大家都喜欢通过视频与他人分享生活、工作等内容并进行互动,除此之外,安防领域的监控直播也得到了很大发展。这其中流媒体服务器就起到了很大作用,支持视频点播、RT...

    EasyNVR
  • 工具函数

    工具函数 显示对比结果 clc %% 不使用遗传算法 %% 使用随机权值和阈值 inputnum=size(P,1); % 输入层神经元个数 o...

    万木逢春
  • .Net做大型互联网项目性能差?看看StackOverflow的架构是怎么样的?

    小编: 在整个web开发世界里,java,.net,PHP是三足鼎立的状况,但是相对于java和php都有优秀的大型互联网架构解决方案,.net的响应架...

    春哥大魔王
  • 做好容错才能确保服务器的不间断运行

    服务器容错 服务器运行时,如果出现故障服务器是否还能正常运转,且业务不会中断运行,这时候就会确认服务器容错如何?如果用户的网站、应用程序或网络系统没有适当的容错...

    企鹅号小编
  • Guava RateLimiter限流源码解析和实例应用

    Guava有两种限流模式,一种为稳定模式(SmoothBursty:令牌生成速度恒定),一种为渐进模式(SmoothWarmingUp:令牌生成速度缓慢提升直到...

    算法之名
  • 深入浅出全栈工程师: Web编程基础

    从浏览器到服务器 如果你的操作系统带有cURL这个软件(在GNU/Linux、Mac OS都自带这个工具,Windows用户可以从http://curl.hax...

    Phodal
  • docker安装nginx并部署一个html静态网站

    Java那些事儿

扫码关注云+社区

领取腾讯云代金券