Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Administração Linux Servidores Virtuais

Como Instalar e Configurar MongoDB em um VPS (Guia Completo 2024)

MongoDB é um dos bancos de dados NoSQL mais amplamente adotados do mundo — e com razão. Seu modelo de documento flexível, desempenho de leitura/escrita de alto throughput e escalabilidade horizontal nativa o tornam a escolha ideal para APIs modernas, plataformas SaaS, CRMs, mecanismos de e-commerce e aplicações intensivas em dados. Ao contrário dos serviços de banco de dados em nuvem gerenciados, executar MongoDB em seu próprio VPS Hosting oferece controle total sobre otimização de desempenho, endurecimento de segurança e custos de longo prazo.

Este guia o orienta através de uma instalação de nível de produção do MongoDB Community Edition 8.0 em um VPS Linux — cobrindo configuração de repositório oficial para Debian 12 e Ubuntu LTS, gerenciamento de serviço, criação de usuário e banco de dados, endurecimento de segurança (autenticação, vinculação de rede, regras de firewall), estratégias de backup e etapas comuns de resolução de problemas. Quer você esteja lançando sua primeira aplicação ou migrando uma carga de trabalho existente, este guia coloca MongoDB funcionando de forma confiável desde o primeiro dia.

1. Pré-requisitos

Antes de começar, certifique-se de que as seguintes condições são atendidas:

RequisitoDetalhes
Acesso VPSAcesso SSH de nível root ou sudo
Sistema operacional64-bit Debian 12 (Bookworm) ou Ubuntu 22.04/24.04 LTS
RAMMínimo 1 GB; 2 GB+ recomendado para produção
ArmazenamentoArmazenamento SSD fortemente recomendado
FirewallUFW ou iptables disponível

> Importante: MongoDB 8.0 suporta oficialmente Debian 12 e versões Ubuntu LTS. Sempre instale a partir dos repositórios oficiais do MongoDB — nunca use o pacote mongodb incluído na sua distribuição Linux, pois está desatualizado, não é suportado e pode entrar em conflito com o pacote oficial mongodb-org.

Se ainda não tem um servidor, os planos de VPS Hosting da AlexHost oferecem instâncias VPS Linux com armazenamento SSD em infraestrutura de alto desempenho — ideais para executar cargas de trabalho de banco de dados em produção.

Atualize Seu Sistema Primeiro

Sempre comece com um sistema totalmente atualizado:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Instalar MongoDB no Debian 12 (Bookworm)

MongoDB não está disponível nos repositórios padrão do Debian, portanto você deve adicionar o repositório APT oficial do MongoDB manualmente.

Passo 1 — Importar a Chave de Assinatura GPG do MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Isto descarrega e armazena a chave GPG utilizada para verificar a integridade do pacote. Sem este passo, APT recusará instalar pacotes do repositório MongoDB.

Passo 2 — Adicionar o Repositório Oficial do MongoDB

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Passo 3 — Instalar MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT irá agora extrair a versão mais recente do MongoDB 8.0 diretamente da CDN oficial do MongoDB.

3. Instalar MongoDB no Ubuntu LTS (24.04 / 22.04)

O processo é quase idêntico ao Debian, mas o URL do repositório difere pelo nome de codificação do Ubuntu.

Passo 1 — Importar a Chave de Assinatura GPG do MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Passo 2 — Adicionar o Repositório para Sua Versão do Ubuntu

Ubuntu 24.04 (Noble Numbat):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Passo 3 — Instalar MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

4. Iniciar e Ativar o Serviço MongoDB

Após a instalação, use systemctl para iniciar o MongoDB e configurá-lo para ser lançado automaticamente no reinício do servidor.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

Por que daemon-reload?

A documentação oficial do MongoDB recomenda especificamente executar systemctl daemon-reload antes de iniciar o serviço. Se você pular esta etapa e vir o erro "Unit mongod.service not found", execute daemon-reload primeiro — isso força o systemd a reler os arquivos de unidade do disco.

Saída Esperada

Um serviço MongoDB saudável mostrará uma saída semelhante a:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Se o status mostrar failed ou inactive, vá para a seção Resolução de Problemas.

5. Criar Bases de Dados e Utilizadores

MongoDB não impõe autenticação por padrão após uma instalação nova. Isto significa que deve criar os seus utilizadores admin e aplicação antes de ativar a autenticação — caso contrário, corre o risco de se bloquear a si mesmo.

Abrir a Shell MongoDB

Conecte-se ao MongoDB localmente no VPS:

mongosh

Passo 1 — Criar um Utilizador Administrativo

Mude para a base de dados admin e crie uma conta admin privilegiada:

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Dica de segurança: Substitua STRONG_PASSWORD_HERE por uma palavra-passe gerada aleatoriamente com pelo menos 20 caracteres. Use um gestor de palavras-passe ou execute openssl rand -base64 24 no seu servidor para gerar uma.

Passo 2 — Criar uma Base de Dados de Aplicação e Utilizador

Crie uma base de dados dedicada e um utilizador com privilégios mínimos limitado apenas a essa base de dados:

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Isto segue o princípio do privilégio mínimo — a sua aplicação tem apenas acesso de leitura/escrita à sua própria base de dados, não a toda a instância MongoDB.

Passo 3 — Verificar se os Utilizadores Foram Criados

use admin
db.getUsers()

Saia da shell:

exit

6. Proteja a Sua Instância MongoDB

Esta é a secção mais crítica do guia. Instâncias MongoDB mal configuradas expostas à internet pública foram responsáveis por numerosas violações de dados de alto perfil. A própria lista de verificação de segurança do MongoDB é explícita: reforce a sua instância antes de a expor a qualquer rede.

A) Vincule MongoDB apenas ao Localhost (Padrão Recomendado)

Por padrão, MongoDB pode estar à escuta em todas as interfaces de rede. Restrinja-o ao localhost a menos que tenha uma necessidade específica e justificada de acesso remoto.

Edite /etc/mongod.conf:

net:
  bindIp: 127.0.0.1

Aplique a alteração:

sudo systemctl restart mongod

Isto garante que MongoDB é apenas acessível a partir do próprio servidor — não a partir da internet pública.

B) Ativar Autenticação

Sem autenticação ativada, qualquer processo local pode ligar-se ao MongoDB sem uma palavra-passe. Edite /etc/mongod.conf:

security:
  authorization: enabled

Reinicie o serviço:

sudo systemctl restart mongod

Agora teste que a autenticação é aplicada:

mongosh -u admin -p --authenticationDatabase admin

C) Configure a Firewall

Se precisar de permitir ligações remotas (por exemplo, a partir de um servidor de aplicações numa máquina diferente), restrinja a porta 27017 apenas a um endereço IP confiável específico. Nunca abra a porta 27017 para 0.0.0.0/0.

Usando UFW:

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Verifique se a regra está ativa:

sudo ufw status verbose

D) Use SSH Tunneling para Acesso Remoto Seguro (Melhor Prática)

A forma mais segura de aceder ao MongoDB remotamente é através de um túnel SSH. Isto evita abrir a porta 27017 completamente e encripta todo o tráfego em trânsito.

A partir da sua máquina local:

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Depois ligue-se a partir da sua shell MongoDB local como se fosse local:

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Esta abordagem é fortemente recomendada para programadores que acedem a bases de dados de produção a partir de portáteis ou estações de trabalho remotas.

Resumo de Reforço de Segurança

Medida de SegurançaLocalização de ConfiguraçãoPrioridade
Vincular apenas ao localhost/etc/mongod.confnet.bindIpCrítica
Ativar autenticação/etc/mongod.confsecurity.authorizationCrítica
Restrição de porta da firewallUFW / iptablesAlta
Túnel SSH para acesso remotoConfiguração SSH do lado do clienteAlta
Usar utilizadores de BD com privilégios mínimosmongoshdb.createUser()Alta
Manter MongoDB atualizadoapt-get upgrade mongodb-orgMédia

7. Cópia de Segurança e Restauração

As cópias de segurança regulares são inegociáveis para qualquer banco de dados de produção. MongoDB inclui mongodump e mongorestore como parte do pacote MongoDB Database Tools.

Criar um Arquivo de Cópia de Segurança Comprimido

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Isto cria um único arquivo comprimido contendo um despejo lógico de todas as bases de dados.

Restaurar a partir de um Arquivo de Cópia de Segurança

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Automatizar Cópias de Segurança com Cron

Agende cópias de segurança diárias usando cron:

crontab -e

Adicione a seguinte linha para executar uma cópia de segurança todos os dias às 2:00 AM:

0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip

> Dica profissional: Para redundância fora do site, considere sincronizar arquivos de cópia de segurança para um local de armazenamento externo usando rsync ou rclone. Nunca armazene sua única cópia de segurança no mesmo servidor que sua base de dados.

8. Resolução de Problemas Comuns

Verificar Registos de Serviço

O primeiro lugar a verificar quando MongoDB falha ao iniciar ou se comporta de forma inesperada:

sudo journalctl -u mongod --no-pager -n 200

Isto mostra as últimas 200 linhas do journal systemd do MongoDB — geralmente suficiente para identificar a causa raiz.

Verificar se MongoDB Está a Escutar na Porta Esperada

sudo ss -lntp | grep 27017

Saída esperada se MongoDB está em execução e vinculado a localhost:

LISTEN  0  128  127.0.0.1:27017  0.0.0.0:*  users:(("mongod",...))

Se não houver saída, MongoDB não está em execução ou está vinculado a uma interface diferente.

Verificar a Versão Instalada do MongoDB

mongod --version

Mensagens de Erro Comuns e Soluções

ErroCausa ProvávelSolução
Unit mongod.service not foundsystemd não carregou o ficheiro de unidadeExecute sudo systemctl daemon-reload
Address already in useA porta 27017 está ocupada por outro processoExecute `sudo ss -lntpgrep 27017` para identificar o conflito
Authentication failedCredenciais erradas ou authSource erradoVerifique o nome de utilizador, palavra-passe e authenticationDatabase
Connection refusedMongoDB não está em execução ou vinculado ao IP erradoVerifique bindIp em mongod.conf e o estado do serviço
mongod.conf permission deniedProblema de permissões de ficheiroExecute sudo chmod 600 /etc/mongod.conf

9. Considerações Finais

Executar MongoDB em um VPS é uma abordagem comprovada e económica para cargas de trabalho de produção que exigem flexibilidade, desempenho e controlo total da infraestrutura. Seguindo este guia, instalou MongoDB 8.0 a partir de repositórios oficiais, configurou autenticação e vinculação de rede, criou utilizadores de base de dados com privilégios mínimos, configurou regras de firewall e estabeleceu uma rotina de cópia de segurança.

Alguns pontos-chave a lembrar:

  • Sempre ative a autenticação — uma instância MongoDB não autenticada é uma vulnerabilidade crítica de segurança.
  • Nunca exponha a porta 27017 à internet pública — use SSH tunneling ou restrinja o acesso a IPs específicos de confiança.
  • Mantenha MongoDB atualizado — execute sudo apt-get upgrade mongodb-org regularmente para receber patches de segurança.
  • Teste as suas cópias de segurança — uma cópia de segurança que nunca restaurou é uma cópia de segurança em que não pode confiar.

Para equipas que precisam de uma base sólida, fiável e de alto desempenho para implementações MongoDB, o VPS Hosting da AlexHost oferece armazenamento SSD NVMe, acesso root completo e escalabilidade flexível de recursos. Se a sua carga de trabalho crescer para além de um único VPS, os Servidores Dedicados oferecem recursos de CPU e RAM dedicados sem efeitos de vizinhos ruidosos — ideais para conjuntos de réplicas MongoDB de alto tráfego ou clusters fragmentados.

Precisa de uma pilha de alojamento completa? Combine o seu VPS de base de dados com Alojamento Web Partilhado para o seu front-end ou ativos estáticos, e proteja o tráfego da sua aplicação com um Certificado SSL para proteger dados em trânsito entre os seus utilizadores e os seus servidores.

*Última atualização para MongoDB Community Edition 8.0 em Debian 12 (Bookworm) e Ubuntu 22.04/24.04 LTS.*