ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Menu Docs

Solução de problemas

Durante a etapa Import the public key used by the package management system do procedimento de instalação do MongoDB Community EditionMon, 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 8.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/8.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/8.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 8.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-8.0.list pode ser configurado incorretamente ou está faltando.

Para revisar o conteúdo do arquivo mongodb-org-8.0.list, execute o seguinte comando no terminal ou shell:

cat /etc/apt/sources.list.d/mongodb-org-8.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-8.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_8.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

O sudo apt purge mongodb remove quaisquer arquivos de configuração padrão instalados pelo pacote Ubuntu mongodb. Se você modificou esses arquivos de configuração e deseja manter essas modificações, copie os arquivos para outro diretório como /home/your-user-name.

Se sua saída incluir uma combinação 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 Ubuntu mongodb. 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 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 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.