Solução de problemas
Nesta página
Observação
MongoDB Atlas
O MongoDB Atlas é uma opção de serviço MongoDB hospedado em nuvem que não requer sobrecarga de instalação e oferece camada grátis para começar.
Erros ao recuperar a chave pública
Durante a etapa Import the public key used by the package management system do procedimento instalação da MongoDB Community Edition , você poderá encontrar um erro "gpg: no valid OpenPGP data found."
.
Certifique-se de copiar o comando exatamente conforme documentado. A operação deve responder com OK
.
Para verificar se a chave GPG pública MongoDB existe em seu sistema, execute o seguinte comando no terminal:
sudo apt-key list
O resultado deve incluir uma entrada semelhante ao seguinte:
/etc/apt/trusted.gpg -------------------- pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17] E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B uid [ unknown] MongoDB 5.0 Release Signing Key <packaging@mongodb.com>
Erros ao executar sudo apt update
Você pode encontrar um ou mais erros semelhantes aos seguintes ao executar o sudo apt-get update
como parte do procedimento Instalar o MongoDB Community Edition:
W: GPG error: https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/5.0 Release: \ The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4B7C549A058F8B6B E: The repository 'https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/5.0 Release' \ is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
Esses erros indicam que a chave GPG pública MongoDB não foi adicionada na etapa Import the public key used by the package management system do procedimento Instalar MongoDB Community Edition.
Repetir a etapa Import the public key used by the package management system do procedimento Instalar MongoDB Community Edition normalmente resolve esse problema. Certifique-se de que está copiando o comando e a chave exatamente como documentado.
Você pode validar que a chave GPG pública MongoDB existe em seu sistema executando o seguinte comando no terminal:
sudo apt-key list
O resultado deve incluir uma entrada semelhante ao seguinte:
-------------------- pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17] E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B uid [ unknown] MongoDB 5.0 Release Signing Key <packaging@mongodb.com>
Erros ao executar sudo apt install -y mongodb-org
Você pode encontrar um erro parecido com o seguinte ao executar sudo apt install -y mongodb-org
na etapa Create a list file for MongoDB do procedimento Install MongoDB Community Edition:
Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mongodb-org
Este erro indica que o /etc/apt/sources.list.d/mongodb-org-5.0.list
pode ser configurado incorretamente ou está faltando.
Para revisar o conteúdo do arquivo mongodb-org-5.0.list
, execute o seguinte comando no terminal ou shell:
cat /etc/apt/sources.list.d/mongodb-org-5.0.list
Se o conteúdo do arquivo não corresponder exatamente à documentação da sua versão do Ubuntu na etapa vinculada acima, remova o arquivo e repita a etapa Create a list file for MongoDB. Se o arquivo não existir, crie-o como parte dessa etapa.
Depois de validar que o arquivo mongodb-org-5.0.list
existe e tem o conteúdo correto, execute sudo apt update
para atualizar os repositórios apt
e tente sudo apt install -y mongodb-org
novamente.
Não foi possível instalar o pacote devido a dpkg-deb: error
Você pode encontrar um erro que se assemelha ao seguinte ao instalar o pacote mongodb-org
:
dpkg: error processing archive /var/cache/apt/archives/mongodb-org-server_5.0.0_amd64.deb (--unpack): trying to overwrite '/usr/bin/mongod', which is also in package mongodb-server-core 1:3.6.3-0ubuntu1
Este erro indica que o sistema já tinha o pacote Ubuntu mongodb
instalado antes de instalar os pacotes oficiais da MongoDB Inc. mongodb-org
. Para confirmar o que o host tem o pacote Ubuntu mongodb
instalado, execute o seguinte comando em um terminal ou shell:
sudo apt list --installed | grep mongo
Se o resultado for parecido com o seguinte, você deverá desinstalar o pacote Ubuntu mongodb
antes de tentar novamente o procedimento Install MongoDB Community Edition:
mongodb/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed] mongodb-clients/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic] mongodb-server/bionic,bionic,now 1:3.6.3-0ubuntu1 all [installed,automatic] mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic]
Execute os seguintes comandos em um terminal ou shell para remover completamente o pacote Ubuntu mongodb
antes de tentar novamente o procedimento de instalação:
sudo apt remove mongodb sudo apt purge mongodb sudo apt autoremove
Observação
sudo apt purge mongodb
remove todos os arquivos de configuração padrão instalados pelo pacote Ubuntu mongodb
. Se você tiver modificado esses arquivos de configuração e quiser mantê-los, copie os arquivos em outro diretório, como /home/your-user-name
.
Se sua saída incluir uma mistura de binários mongodb-org
e mongodb
, talvez seja necessário primeiro apt remove
, apt
purge
e apt autoremove
o pacote mongodb-org
antes de tentar remover e limpar o pacote mongodb
do Ubuntu. Após limpar todos os pacotes relacionados ao MongoDB, tente novamente o procedimento de instalação.
mongod
relata erros relacionados com a abertura de uma tomada
Você pode encontrar os erros Socket is already in use
ou Failed to unlink socket file
ao iniciar um mongod
. Esses erros geralmente indicam outro processo usando a porta configurada para o processo mongod
, normalmente outro mongod
em execução no sistema.
O exemplo seguinte utiliza o utilitário ss
para listar todos os soquetes TCP (-t
) ou UDP (-u
) abertos no estado LISTEN
(-l
) e o processo utilizando cada soquete (-p
) sem resolver quaisquer nomes de serviço ou nomes de host (-n
).
sudo ss -tulpn
A saída parcial a seguir mostra um processo mongod
escutando na porta 27017
. A tentativa de executar outro processo mongod
na mesma porta resultará em erros de soquete.
Netid State Local Address:Port udp UNCONN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=12)) udp UNCONN 10.1.16.87%enp0s3:68 users:(("systemd-network",pid=652,fd=15)) tcp LISTEN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=13)) tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=819,fd=3)) tcp LISTEN 192.168.1.15:27017 users:(("mongod",pid=10027,fd=12)) tcp LISTEN 127.0.0.1:27017 users:(("mongod",pid=10027,fd=11)) tcp LISTEN ::]:22 users:(("sshd",pid=819,fd=4))
Se o sistema tiver um mongod
ou outro processo do sistema em execução na porta desejada, você deverá encerrar o processo existente ou selecionar uma nova porta para o novo processo mongod
. Você pode especificar a opção net.port
arquivo de configuração para alterar a porta que o mongod
escuta.
mongod
relata erros relacionados ao diretório de dados
Os usuários podem encontrar erros que se assemelham aos seguintes no mongod
registro de processo:
Data directory ... not found Attempted to create lock file on a read-only directory: ...
Geralmente, estes erros indicam que o diretório de dados MongoDB não existe ou não está acessível ao mongod
.
O diretório de dados deve existir
O diretório de dados é especificado com a configuração do storage.dbPath
no arquivo de configuração ou com a opção --dbpath
para mongod
na linha de comando.
Se você instalou o MongoDB por meio do gerenciador de pacote
apt
, o arquivo de configuração do/etc/mongod.conf
padrão definestorage.dbPath
como/var/lib/mongodb
.Se você estiver executando
mongod
na linha de comando e omitindo totalmente a opção--dbpath
, o MongoDB usa um--dbpath
padrão de/data/db
.
Se você estiver utilizando um dos caminhos do diretório de dados acima ou fornecendo seu próprio caminho no arquivo de configuração ou na linha de comando, certifique-se que o diretório de dados existe no seu sistema de arquivos antes de iniciar o mongod
. Você pode criar diretórios no Ubuntu com o comando mkdir
.
O diretório de dados deve estar acessível
O diretório de dados deve ser configurado com as permissões apropriadas e configurações de propriedade para permitir que o mongod
leia, escreva e navegue pelo conteúdo do diretório (permissões de usuário ou grupo do rwx
).
Use chown
e chmod
para modificar permissões e definir user:group
propriedade conforme apropriado antes de iniciar o mongod
.
Iniciando o mongod
utilizando o diretório de dados
Os usuários que iniciam o mongod
como um serviço (por exemplo, usando sudo
systemctl start mongod
ou sudo service mongod start
) normalmente só veem esses erros se modificaram o valor dedbPath
padrão no /etc/mongod.conf
para:
Um diretório que não permite ao usuário do
mongodb
ou grupo domongodb
ler, escrever ou executar (rwx
) o diretório e seu conteúdo, ouUm diretório que não existe.
Os usuários que iniciam o mongod
sem usar a definição de serviço (por exemplo, usando o terminal para iniciar mongod
) normalmente veem esses erros se: