// Tutorial //

Como instalar o MongoDB a partir dos repositórios APT padrão no Ubuntu 20.04

Published on April 7, 2021
Default avatar
Português
Como instalar o MongoDB a partir dos repositórios APT padrão no Ubuntu 20.04

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, de maneira opcional, habilitar o acesso remoto.

Nota: no momento em que este artigo está sendo escrito, este tutorial instala a versão 3.6 do MongoDB, que é a versão disponível nos repositórios padrão do Ubuntu. No entanto, geralmente recomendamos a instalação da versão mais recente do MongoDB — versão 4.4 no momento em que este artigo está sendo escrito — ao invés disso. Se quiser instalar a versão mais recente do MongoDB, encorajamos que siga este guia sobre Como instalar o MongoDB no Ubuntu 20.04 da origem.

Pré-requisitos

Para seguir este tutorial, será necessário:

Passo 1 — Como instalar o MongoDB

Os repositórios de pacotes oficiais do Ubuntu incluem o MongoDB, ou seja, podemos instalar os pacotes necessários utilizando o apt. Como mencionado na introdução, a versão disponível dos repositórios padrão não é a mais recente. Para instalar a versão mais recente do Mongo, siga este tutorial.

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 mongodb

Esse comando solicitará que você confirme se deseja instalar o pacote mongodb e suas dependências. Para fazer isso, pressione Y e então ENTER.

Esse comando instala vários pacotes que contêm uma versão estável 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 Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

De acordo com esse resultado, o servidor MongoDB está em funcionamento.

Podemos verificar isso mais adiante ao nos conectarmos ao servidor de banco de dados e executarmos um comando de diagnóstico. 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:

  1. mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Output
MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "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 processo de instalação mostrado no Passo 1 configura o MongoDB como um serviço systemd, ou seja, você pode gerenciá-lo usando comandos systemctl padrão junto com todos os outros serviços de sistema no Ubuntu.

Para verificar o estado do serviço, digite:

  1. sudo systemctl status mongodb

Para interromper o servidor a qualquer momento, digite:

  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 o comando a seguir:

  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

Você pode habilitar novamente a inicialização automática a qualquer momento com o seguinte comando:

  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)

Considerando que você seguiu todas 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 de entrada adicionando uma regra UFW.

Para permitir o acesso ao MongoDB em sua porta padrão 27017 de todos os lugares, utilize o comando 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 permitir o acesso à porta padrão do MongoDB apenas por outro servidor confiável, especifique o endereço IP do servidor remoto no comando ufw. Dessa forma, apenas essa máquina será explicitamente autorizada a se conectar:

  1. sudo ufw allow from trusted_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 no resultado. 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 no resultado do comando:

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

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 estará escutando apenas no endereço local 127.0.0.1. Para permitir conexões remotas, adicione o endereço IP roteável publicamente do seu servidor ao arquivo mongodb.conf.

Abra o arquivo de configuração do MongoDB em seu editor de texto preferido. Este comando de exemplo usa o nano:

  1. sudo nano /etc/mongodb.conf

Adicione o endereço IP do seu servidor MongoDB ao valor bindIP. Certifique-se de colocar uma vírgula entre o endereço IP existente e o que você adicionou:

/etc/mongodb.conf
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Salve o arquivo e saia do editor. Se você usou o nano para editar o arquivo, faça isso pressionando CTRL + X, Y, depois ENTER.

Em seguida, reinicie o serviço MongoDB:

  1. sudo systemctl restart mongodb

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

Conclusão

Encontre tutoriais mais aprofundados sobre como configurar e usar o MongoDB nestes artigos da comunidade DigitalOcean. A documentação oficial do MongoDB também é um ótimo recurso sobre as possibilidades que o MongoDB proporciona.

If you’ve enjoyed this tutorial and our broader community, consider checking out our DigitalOcean products which can also help you achieve your development goals.

Learn more here


About the authors
Default avatar
Manager, Developer Education

Technical Writer @ DigitalOcean


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?

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!