Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Solução de problemas

Nesta página

  • Erros ao recuperar a chave pública
  • Erros ao executar sudo apt update
  • Erros ao executar sudo apt install -y mongodb-org
  • Não foi possível instalar o pacote devido a dpkg-deb: error
  • mongod relata erros relacionados com a abertura de uma tomada
  • mongod relata erros relacionados ao diretório de dados

Observação

MongoDB Atlas

O MongoDB Atlas é uma opção de serviço MongoDB hospedada na nuvem que não requer nenhuma sobrecarga de instalação e oferece uma camada grátis para começar.

Durante a etapa Import the public key used by the package management system do procedimento Instalar a MongoDB Community Edition , você pode 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>

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>

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.

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.

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.

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 é 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 pacotes apt , o arquivo de configuração padrão do /etc/mongod.conf define storage.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 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 chowne chmod para modificar permissões e definir user:group propriedade conforme apropriado antes de iniciar o mongod.

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 do mongodb ler, escrever ou executar (rwx) o diretório e seu conteúdo, ou

  • Um 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:

  • O diretório especificado para dbPath ou --dbpath não permite que o usuário ou um grupo ao qual o usuário pertence leia, grave e execute (rwx) o diretório ou seu conteúdo, ou

  • O diretório de dados especificado não existe.

← Instale o MongoDB Community no Ubuntu usando .tgz Tarball