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:
| Requisito | Detalhes |
|---|---|
| Acesso VPS | Acesso SSH de nível root ou sudo |
| Sistema operacional | 64-bit Debian 12 (Bookworm) ou Ubuntu 22.04/24.04 LTS |
| RAM | Mínimo 1 GB; 2 GB+ recomendado para produção |
| Armazenamento | Armazenamento SSD fortemente recomendado |
| Firewall | UFW 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 curl2. 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.gpgIsto 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/nullPasso 3 — Instalar MongoDB Community Edition
sudo apt-get update
sudo apt-get install -y mongodb-orgAPT 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 --dearmorPasso 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.listUbuntu 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.listPasso 3 — Instalar MongoDB Community Edition
sudo apt-get update
sudo apt-get install -y mongodb-org4. 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-pagerPor 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:
mongoshPasso 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:
exit6. 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.1Aplique a alteração:
sudo systemctl restart mongodIsto 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: enabledReinicie o serviço:
sudo systemctl restart mongodAgora teste que a autenticação é aplicada:
mongosh -u admin -p --authenticationDatabase adminC) 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 statusVerifique se a regra está ativa:
sudo ufw status verboseD) 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_IPDepois 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ça | Localização de Configuração | Prioridade |
|---|---|---|
| Vincular apenas ao localhost | /etc/mongod.conf → net.bindIp | Crítica |
| Ativar autenticação | /etc/mongod.conf → security.authorization | Crítica |
| Restrição de porta da firewall | UFW / iptables | Alta |
| Túnel SSH para acesso remoto | Configuração SSH do lado do cliente | Alta |
| Usar utilizadores de BD com privilégios mínimos | mongosh → db.createUser() | Alta |
| Manter MongoDB atualizado | apt-get upgrade mongodb-org | Mé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
--gzipIsto 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
--gzipAutomatizar Cópias de Segurança com Cron
Agende cópias de segurança diárias usando cron:
crontab -eAdicione 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 200Isto 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 27017Saí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 --versionMensagens de Erro Comuns e Soluções
| Erro | Causa Provável | Solução | |
|---|---|---|---|
Unit mongod.service not found | systemd não carregou o ficheiro de unidade | Execute sudo systemctl daemon-reload | |
Address already in use | A porta 27017 está ocupada por outro processo | Execute `sudo ss -lntp | grep 27017` para identificar o conflito |
Authentication failed | Credenciais erradas ou authSource errado | Verifique o nome de utilizador, palavra-passe e authenticationDatabase | |
Connection refused | MongoDB não está em execução ou vinculado ao IP errado | Verifique bindIp em mongod.conf e o estado do serviço | |
mongod.conf permission denied | Problema de permissões de ficheiro | Execute 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-orgregularmente 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.*
em todos os serviços de alojamento