Tutorial

Como instalar o MongoDB no Ubuntu 18.04

Published on December 12, 2019
Português
Como instalar o MongoDB no Ubuntu 18.04

O autor selecionou a Corporativa Creative Commons para receber uma doação de $100 como parte do programa Write for DOnations.

Introdução

O MongoDB é um banco de dados de documento NoSQL de código aberto e gratuito usado habitualmente em aplicativos Web modernos.

Neste tutorial, você irá instalar o MongoDB, gerenciar seus serviços, e opcionalmente, habilitar o acesso remoto.

Pré-requisitos

Para seguir este tutorial, será necessário:

Passo 1 — Como instalar o MongoDB

Os repositórios de pacotes oficiais do Ubuntu incluem uma versão atualizada do MongoDB, ou seja, podemos instalar os pacotes necessários utilizando o apt.

Primeiramente, atualize a lista de pacotes para ter a versão mais recente dos registros:

  1. sudo apt update

Agora, instale o pacote MongoDB:

  1. sudo apt install -y mongodb

Este comando instala vários pacotes que contêm a versão estável mais recente do MongoDB, junto com ferramentas de gerenciamento úteis para o servidor MongoDB. O servidor de banco de dados é iniciado automaticamente após a instalação.

Em seguida, vamos verificar se o servidor está funcionando corretamente.

Passo 2 — Como verificar o serviço e o banco de dados

O processo de instalação iniciou o MongoDB automaticamente, mas vamos verificar se o serviço está iniciado e que o banco de dados está funcionando.

Primeiramente, verifique o estado do serviço:

  1. sudo systemctl status mongodb

Você verá este resultado:

Output
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

De acordo com o systemd, o servidor MongoDB está funcionando.

Podemos verificar isso mais adiante ao conectarmos ao servidor de banco de dados e executarmos um comando de diagnóstico

Execute este comando:

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

Isso mostrará a versão atual do banco de dados, o endereço e a porta do servidor, e o resultado do comando de estado:

Output
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 }

Um valor de 1 para o campo ok na resposta indica que o servidor está funcionando corretamente.

Em seguida, vamos ver como gerenciar a instância do servidor.

Passo 3 — Como gerenciar o serviço MongoDB

O MongoDB instala como um serviço systemd, o que significa que você pode gerenciar ele utilizando comandos systemd padrões ao lado de todos os outros serviços de sytem no Ubuntu.

Para verificar o estado do serviço, digite:

  1. sudo systemctl status mongodb

É possível parar o servidor a qualquer momento digitando:

  1. sudo systemctl stop mongodb

Para iniciar o servidor quando ele for parado, digite:

  1. sudo systemctl start mongodb

Você também pode reiniciar o servidor com um único comando:

  1. sudo systemctl restart mongodb

Por padrão, o MongoDB está configurado para iniciar automaticamente com o servidor. Se quiser desativar o inicializador automático, digite:

  1. sudo systemctl disable mongodb

Habilitá-lo novamente também é fácil. Para fazer isso, utilize:

  1. sudo systemctl enable mongodb

Em seguida, vamos ajustar as configurações de firewall para nossa instalação do MongoDB.

Passo 4 — Como ajustar o Firewall (opcional)

Ao assumirmos que tenha seguido as instruções do tutorial de configuração inicial do servidor para habilitar o firewall no seu servidor, então o servidor MongoDB estará inacessível pela internet.

Se quiser usar o servidor MongoDB apenas localmente com aplicativos funcionando no mesmo servidor, esta é a configuração recomendada e segura. Entretanto, se quiser poder se conectar ao seu servidor MongoDB pela internet, será necessário permitir as conexões recebidas em ufw.

Para permitir o acesso ao MongoDB em sua porta padrão 27017de todos os lugares, utilize o sudo ufw allow 27017. Entretanto, habilitar o acesso à internet ao servidor MongoDB em uma instalação padrão dá a qualquer um acesso ilimitado ao servidor de banco de dados e seus dados.

Na maioria dos casos, o MongoDB deve ser acessado apenas por certos locais confiáveis, como outro servidor que hospeda um aplicativo. Para realizar esta tarefa, permita o acesso na porta padrão do MongoDB enquanto especifica o endereço IP de outro servidor que será explicitamente permitido para se conectar:

  1. sudo ufw allow from your_other_server_ip/32 to any port 27017

Verifique a mudança nas configurações do firewall com o ufw:

  1. sudo ufw status

Você deve ver o tráfego permitido para a porta 27017 na saída:

Output
Status: active

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

Se tiver decidido permitir que apenas um certo endereço IP se conecte ao servidor MongoDB, o endereço IP do local permitido estará listado ao invés de *Anywhere *na saída.

Você pode encontrar configurações de firewall mais avançadas para restringir o acesso a serviços em Essenciais do UFW: regras e comandos comuns do firewall.

Embora a porta esteja aberta, o MongoDB agora está escutando apenas o endereço local 127.0.0.1. Para permitir conexões remotas, adicione o endereço IP publicly-routable do seu servidor ao arquivo mongod.conf.

Abra o arquivo de configuração do MongoDB no seu editor:

  1. sudo nano /etc/mongodb.conf

Adicione o endereço IP do seu servidor ao valor do bindIP:

[label ]
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Certifique-se de colocar uma vírgula entre o endereço IP existente e o que você adicionou.

Salve o arquivo, saia do editor e reinicie o MongoDB:

  1. sudo systemctl restart mongodb

O MongoDB agora está escutando conexões remotas, mas qualquer um pode acessá-lo. Siga a parte 2 de Como instalar e proteger o MongoDB no Ubuntu 16.04 para adicionar um usuário administrativo e bloquear as coisas mais adiante.

Conclusão

Você pode encontrar tutoriais mais aprofundados sobre como configurar e utilizar o MongoDB nestes artigos da comunidade DigitalOcean. A documentação MongoDB oficial também é um ótimo recurso sobre as possibilidades que o MongoDB proporciona.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Software Engineer, CTO @Makimo

Creating bespoke software ◦ CTO & co-founder at Makimo. I’m a software enginner & a geek. I like making impossible things possible. And I need tea.



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel